2011-08-31 21:20:17 +00:00
# OpenClonk, http://www.openclonk.org
#
2015-01-07 19:32:49 +00:00
# Copyright (c) 2009-2015, The OpenClonk Team and contributors
2011-08-31 21:20:17 +00:00
#
2013-12-17 20:01:09 +00:00
# Distributed under the terms of the ISC license; see accompanying file
# "COPYING" for details.
2011-08-31 21:20:17 +00:00
#
2013-12-17 20:01:09 +00:00
# "Clonk" is a registered trademark of Matthes Bender, used with permission.
# See accompanying file "TRADEMARK" for details.
2011-08-31 21:20:17 +00:00
#
2013-12-17 20:01:09 +00:00
# To redistribute this file separately, substitute the full license texts
# for the above references.
2010-08-01 13:49:51 +00:00
2015-12-29 02:03:22 +00:00
cmake_minimum_required ( VERSION 3.0.2 )
2011-08-27 20:04:33 +00:00
project ( openclonk CXX C )
2009-05-29 20:53:15 +00:00
2015-01-18 14:25:09 +00:00
# CMP0054: Only interpret if() arguments as variables or keywords when unquoted
# (since CMake 3.1)
if ( POLICY CMP0054 )
cmake_policy ( SET CMP0054 NEW )
endif ( )
2015-01-18 14:27:17 +00:00
set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" )
2009-05-29 20:53:15 +00:00
2015-05-21 20:57:16 +00:00
include ( Version )
2009-05-29 20:53:15 +00:00
2013-03-09 13:59:07 +00:00
set ( CMAKE_ADDITIONAL_DEPS_PATH "${CMAKE_CURRENT_BINARY_DIR}/deps" CACHE PATH "Additional directory to search for libraries and headers" )
2009-08-13 16:09:00 +00:00
list ( APPEND CMAKE_PREFIX_PATH ${ CMAKE_ADDITIONAL_DEPS_PATH } )
2013-01-20 20:53:56 +00:00
2010-01-12 21:09:16 +00:00
############################################################################
# User selectable options
############################################################################
2013-03-09 13:58:30 +00:00
include ( CMakeDependentOption )
2012-02-28 17:28:16 +00:00
option ( PROJECT_FOLDERS "Put source files into subfolders in project file" ON )
2015-12-15 19:18:25 +00:00
option ( USE_SDL_MAINLOOP "Use SDL to create windows etc." OFF )
2013-03-09 13:58:30 +00:00
CMAKE_DEPENDENT_OPTION ( USE_X11 "Use X11 to create windows etc." ON
2015-12-15 19:18:25 +00:00
" UNIX A N D N O T APPLE A N D N O T U S E _ S D L _ M A I N L O O P " O F F )
2013-03-09 13:58:30 +00:00
CMAKE_DEPENDENT_OPTION ( USE_GTK "Use GTK for the developer mode" ON "USE_X11" OFF )
CMAKE_DEPENDENT_OPTION ( USE_COCOA "Use Apple Cocoa for the developer mode and the windows." ON "APPLE" OFF )
option ( WITH_AUTOMATIC_UPDATE "Automatic updates are downloaded from the project website." OFF )
2010-01-12 21:09:16 +00:00
############################################################################
2015-12-22 00:09:02 +00:00
# Assemble compiler flags
2010-01-12 21:09:16 +00:00
############################################################################
include ( CheckCXXCompilerFlag )
2015-12-22 00:09:02 +00:00
set ( OC_CXX_FLAGS ${ CMAKE_CXX_FLAGS } )
separate_arguments ( OC_CXX_FLAGS )
set ( OC_CXX_FLAGS_DEBUG ${ CMAKE_CXX_FLAGS_DEBUG } )
separate_arguments ( OC_CXX_FLAGS_DEBUG )
set ( OC_EXE_LINKER_FLAGS ${ CMAKE_EXE_LINKER_FLAGS } )
separate_arguments ( OC_EXE_LINKER_FLAGS )
set ( OC_EXE_LINKER_FLAGS_DEBUG ${ CMAKE_EXE_LINKER_FLAGS_DEBUG } )
separate_arguments ( OC_EXE_LINKER_FLAGS_DEBUG )
2014-04-21 16:05:37 +00:00
2015-12-28 16:43:25 +00:00
CHECK_CXX_COMPILER_FLAG ( "-std=gnu++14" USE_GCC_STD_14 )
if ( USE_GCC_STD_14 )
list ( APPEND OC_CXX_FLAGS "-std=gnu++14" )
2010-01-12 21:09:16 +00:00
endif ( )
if ( MSVC_VERSION GREATER 1499 )
2015-12-28 16:06:54 +00:00
list ( APPEND OC_CXX_FLAGS /MP )
list ( REMOVE_ITEM OC_CXX_FLAGS_DEBUG /Gm )
2013-10-18 12:20:09 +00:00
2010-02-28 00:42:57 +00:00
if ( NOT CMAKE_CL_64 )
2010-01-12 21:09:16 +00:00
# Activate edit-and-continue
list ( REMOVE_ITEM OC_CXX_FLAGS_DEBUG /Zi )
list ( APPEND OC_CXX_FLAGS_DEBUG /ZI /Gy )
endif ( )
2011-08-19 13:50:40 +00:00
# do not link the release CRT in debug builds
list ( APPEND OC_EXE_LINKER_FLAGS_DEBUG "/NODEFAULTLIB:MSVCRT" )
2010-01-12 21:09:16 +00:00
set ( HAVE_PRECOMPILED_HEADERS ON CACHE INTERNAL "Compiler supports precompiled headers" )
endif ( )
if ( MSVC_VERSION )
# Suppress warnings about "non-secure" functions
add_definitions ( -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS )
# Disable warning C4244: 'conversion' conversion from 'type1' to 'type2', possible loss of data
list ( APPEND OC_CXX_FLAGS "/wd4244" )
2010-09-29 21:11:12 +00:00
# Disable warning C4267: 'var' : conversion from 'size_t' to 'type', possible loss of data (64 bit build only)
list ( APPEND OC_CXX_FLAGS "/wd4267" )
2010-01-12 21:09:16 +00:00
endif ( )
2011-09-27 23:09:56 +00:00
if ( CMAKE_COMPILER_IS_GNUCXX )
2015-12-22 00:14:26 +00:00
list ( APPEND OC_CXX_FLAGS -Wall -Wextra -Wredundant-decls -Wendif-labels -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Winit-self -Wsign-promo -Wno-reorder -Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual )
2011-09-27 23:09:56 +00:00
endif ( )
2012-06-08 11:18:58 +00:00
2015-02-13 23:11:51 +00:00
if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
2015-12-22 00:14:26 +00:00
list ( APPEND OC_CXX_FLAGS -Wall -Wextra -Wextra-tokens -Wpointer-arith -Wno-cast-align -Wno-reorder -Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual )
2011-09-27 23:09:56 +00:00
endif ( )
2012-06-08 11:18:58 +00:00
if ( WIN32 AND MINGW )
# Activate DEP and ASLR
2015-12-22 00:14:26 +00:00
list ( APPEND OC_EXE_LINKER_FLAGS -Wl,--nxcompat -Wl,--dynamicbase )
2011-09-27 23:09:56 +00:00
endif ( )
2015-12-22 00:09:02 +00:00
if ( UNIX )
# Don't put this into CMAKE_CXX_FLAGS because otherwise it is cached,
# and when the path is changed both the old and new definition appears
# in the list of flags.
add_definitions ( "-DOC_SYSTEM_DATA_DIR=\" ${ CMAKE_INSTALL_PREFIX } /share/games/openclonk\ "" )
endif ( )
2015-12-28 21:14:25 +00:00
if ( APPLE )
list ( APPEND OC_CXX_FLAGS -fobjc-arc )
endif ( )
2015-12-22 00:09:02 +00:00
if ( OC_CXX_FLAGS )
list ( REMOVE_DUPLICATES OC_CXX_FLAGS )
endif ( )
set ( CMAKE_CXX_FLAGS "" CACHE STRING "C++ compiler flags" FORCE )
foreach ( FLAG ${ OC_CXX_FLAGS } )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}" CACHE STRING "C++ compiler flags" FORCE )
endforeach ( )
if ( OC_CXX_FLAGS_DEBUG )
list ( REMOVE_DUPLICATES OC_CXX_FLAGS_DEBUG )
endif ( )
set ( CMAKE_CXX_FLAGS_DEBUG "" CACHE STRING "Flags used by the compiler during debug builds." FORCE )
foreach ( FLAG ${ OC_CXX_FLAGS_DEBUG } )
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}" CACHE STRING "Flags used by the compiler during debug builds." FORCE )
endforeach ( )
if ( OC_EXE_LINKER_FLAGS )
list ( REMOVE_DUPLICATES OC_EXE_LINKER_FLAGS )
endif ( )
set ( CMAKE_EXE_LINKER_FLAGS "" CACHE STRING "Flags used by the linker." FORCE )
foreach ( FLAG ${ OC_EXE_LINKER_FLAGS } )
set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAG}" CACHE STRING "Flags used by the linker." FORCE )
endforeach ( )
if ( OC_EXE_LINKER_FLAGS_DEBUG )
list ( REMOVE_DUPLICATES OC_EXE_LINKER_FLAGS_DEBUG )
endif ( )
set ( CMAKE_EXE_LINKER_FLAGS_DEBUG "" CACHE STRING "Flags used by the linker during debug builds." FORCE )
foreach ( FLAG ${ OC_EXE_LINKER_FLAGS_DEBUG } )
set ( CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${FLAG}" CACHE STRING "Flags used by the linker during debug builds." FORCE )
endforeach ( )
############################################################################
# Check for compiler quirks and features
############################################################################
include ( CheckCXXSourceCompiles )
include ( RequireCXXSourceCompiles )
2015-12-24 23:30:11 +00:00
include ( CheckCXXSymbolExists )
2015-12-22 00:09:02 +00:00
REQUIRE_CXX_SOURCE_COMPILES ( "#include <memory>\nint main() { std::unique_ptr<int> a; std::shared_ptr<int> b; }" HAVE_C11_SMART_PTRS )
REQUIRE_CXX_SOURCE_COMPILES ( "int main() { static_assert(true, \" \"); } " HAVE_STATIC_ASSERT )
2015-12-28 21:00:06 +00:00
REQUIRE_CXX_SOURCE_COMPILES ( "#include <memory>\nint main() { auto a = std::make_unique<int>(0); return !!a; }" HAVE_MAKE_UNIQUE )
REQUIRE_CXX_SOURCE_COMPILES ( "#include <utility>\ntemplate<std::size_t... Is> int foo(std::index_sequence<Is...>) {return 0;} int main() { return foo(std::index_sequence_for<int,int>{}); }" HAVE_INDEX_SEQUENCE )
2015-12-22 00:09:02 +00:00
REQUIRE_CXX_SOURCE_COMPILES ( "template<class... T> class C; int main() { return 0; }" HAVE_VARIADIC_TEMPLATES )
# g++'s libstdc++ doesn't properly support <regex> until 4.9.
# They ship a header that declares functions, but they don't ship an
# implementation for some things (like std::regex_iterator).
# This needs to test *linking*, not compilation; cmake does both at the same
# time, so the test below works.
REQUIRE_CXX_SOURCE_COMPILES ( "#include <regex>\nint main() { std::cregex_iterator ri; }" HAVE_WORKING_REGEX " If you are using gcc, please update to gcc 4.9." )
2015-12-24 23:30:11 +00:00
check_cxx_symbol_exists ( vasprintf stdio.h HAVE_VASPRINTF )
check_cxx_symbol_exists ( __mingw_vasprintf stdio.h HAVE___MINGW_VASPRINTF )
2015-12-22 00:09:02 +00:00
2015-12-25 01:32:01 +00:00
############################################################################
# Check for required system headers
############################################################################
include ( CheckIncludeFileCXX )
include ( CheckIncludeFilesCXX )
CHECK_INCLUDE_FILE_CXX ( direct.h HAVE_DIRECT_H )
CHECK_INCLUDE_FILE_CXX ( io.h HAVE_IO_H )
CHECK_INCLUDE_FILE_CXX ( locale.h HAVE_LOCALE_H )
CHECK_INCLUDE_FILE_CXX ( share.h HAVE_SHARE_H )
CHECK_INCLUDE_FILE_CXX ( signal.h HAVE_SIGNAL_H )
CHECK_INCLUDE_FILE_CXX ( stdint.h HAVE_STDINT_H )
CHECK_INCLUDE_FILE_CXX ( inttypes.h HAVE_INTTYPES_H )
CHECK_INCLUDE_FILE_CXX ( sys/stat.h HAVE_SYS_STAT_H )
CHECK_INCLUDE_FILE_CXX ( sys/types.h HAVE_SYS_TYPES_H )
CHECK_INCLUDE_FILE_CXX ( unistd.h HAVE_UNISTD_H )
CHECK_INCLUDE_FILE_CXX ( execinfo.h HAVE_EXECINFO_H )
CHECK_INCLUDE_FILE_CXX ( poll.h HAVE_POLL_H )
CHECK_INCLUDE_FILE_CXX ( sys/inotify.h HAVE_SYS_INOTIFY_H )
CHECK_INCLUDE_FILE_CXX ( sys/timerfd.h HAVE_SYS_TIMERFD_H )
CHECK_INCLUDE_FILE_CXX ( sys/socket.h HAVE_SYS_SOCKET_H )
CHECK_INCLUDE_FILE_CXX ( sys/eventfd.h HAVE_SYS_EVENTFD_H )
CHECK_INCLUDE_FILE_CXX ( sys/file.h HAVE_SYS_FILE_H )
CHECK_INCLUDE_FILES_CXX ( "X11/Xlib.h;X11/extensions/Xrandr.h" HAVE_X11_EXTENSIONS_XRANDR_H )
CHECK_INCLUDE_FILES_CXX ( "X11/Xlib.h;X11/keysym.h" HAVE_X11_KEYSYM_H )
2015-12-28 23:41:35 +00:00
CHECK_CXX_SOURCE_COMPILES ( "#include <getopt.h>\nint main(int argc, char * argv[]) { getopt_long(argc, argv, \" \", 0, 0 ) ; } " H A V E _ G E T O P T _ H )
2015-12-25 01:32:01 +00:00
############################################################################
# Locate libraries
############################################################################
# Find win32 SDK, since a lot of users don't have the include path in their environment
if ( MSVC )
get_filename_component ( WINSDK_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" ABSOLUTE CACHE )
mark_as_advanced ( WINSDK_ROOT )
list ( APPEND CMAKE_INCLUDE_PATH "${WINSDK_ROOT}/Include" )
include_directories ( SYSTEM ${ WINSDK_ROOT } /Include )
if ( CMAKE_SIZEOF_VOID_P EQUAL 8 )
list ( APPEND CMAKE_LIBRARY_PATH ${ WINSDK_ROOT } /Lib/x64 )
else ( )
list ( APPEND CMAKE_LIBRARY_PATH ${ WINSDK_ROOT } /Lib )
endif ( )
endif ( )
SET ( JPEG_NAMES ${ JPEG_NAMES } libjpeg jpeg-static )
find_package ( JPEG REQUIRED )
find_package ( PNG REQUIRED )
find_package ( ZLIB REQUIRED )
find_package ( Freetype REQUIRED )
include_directories (
$ { J P E G _ I N C L U D E _ D I R }
$ { P N G _ I N C L U D E _ D I R }
$ { Z L I B _ I N C L U D E _ D I R }
$ { F R E E T Y P E _ I N C L U D E _ D I R S } )
2016-01-09 22:33:28 +00:00
link_directories (
$ { F R E E T Y P E _ L I B R A R Y _ D I R S } )
2015-12-25 01:32:01 +00:00
if ( CMAKE_SYSTEM MATCHES "Windows" )
message ( STATUS "Using Win32 threading." )
else ( )
find_package ( "Threads" REQUIRED )
SET ( HAVE_PTHREAD ${ CMAKE_USE_PTHREADS_INIT } CACHE INTERNAL "libpthread available" )
endif ( )
# FINDLIB works the same as find_library, but also marks the resulting var as
# advanced so it doesn't show in GUIs by default
macro ( FINDLIB lib )
find_library ( ${ ARGV } )
mark_as_advanced ( ${ lib } )
endmacro ( FINDLIB )
if ( HAVE_EXECINFO_H )
check_cxx_symbol_exists ( backtrace execinfo.h HAVE_EXECINFO_WO_LINK )
mark_as_advanced ( HAVE_EXECINFO_WO_LINK )
if ( NOT HAVE_EXECINFO_WO_LINK )
FINDLIB ( EXECINFO_LIBRARY execinfo )
endif ( )
endif ( )
if ( NOT HAVE_GETOPT_H )
include_directories ( SYSTEM thirdparty/getopt )
add_subdirectory ( thirdparty/getopt )
set ( GETOPT_LIBRARIES getopt )
endif ( )
# TinyXML
find_package ( TinyXML )
if ( NOT TinyXML_FOUND )
add_subdirectory ( thirdparty/tinyxml )
set ( TinyXML_INCLUDE_DIRS thirdparty/tinyxml )
set ( TinyXML_LIBRARIES tinyxml )
set ( TinyXML_FOUND TRUE )
endif ( )
include_directories ( SYSTEM ${ TinyXML_INCLUDE_DIRS } )
find_package ( OpenGL )
find_package ( GLEW REQUIRED )
include_directories ( ${ GLEW_INCLUDE_DIRS } )
add_definitions ( ${ GLEW_DEFINITIONS } )
# On some platforms, GLEW declares the userParam parameter of
# GLDEBUGPROCARB as const void *, and on other platforms, it's void *.
# Test which one works here.
set ( CMAKE_REQUIRED_INCLUDES "${GLEW_INCLUDE_DIRS}" )
CHECK_CXX_SOURCE_COMPILES ( "#include <GL/glew.h>\nvoid GLAPIENTRY OpenGLDebugProc(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* message, const void* userParam) {}\nint main() { GLDEBUGPROCARB proc = &OpenGLDebugProc; }" GLDEBUGPROCARB_USERPARAM_IS_CONST )
if ( USE_X11 )
FINDLIB ( X11_LIBRARIES X11 )
FINDLIB ( XRANDR_LIBRARIES Xrandr )
endif ( )
if ( WIN32 )
find_package ( DbgHelp )
if ( DBGHELP_FOUND )
include_directories ( ${ DBGHELP_INCLUDE_DIR } )
endif ( )
set ( HAVE_DBGHELP ${ DBGHELP_FOUND } )
endif ( )
find_package ( Upnp )
if ( UPNP_FOUND )
include_directories ( SYSTEM ${ UPNP_INCLUDE_DIR } )
endif ( )
find_package ( Readline )
if ( READLINE_FOUND )
include_directories ( SYSTEM ${ READLINE_INCLUDE_DIR } )
endif ( )
SET ( HAVE_LIBREADLINE ${ READLINE_FOUND } CACHE INTERNAL "libreadline available" )
find_package ( GTK3 COMPONENTS gthread gio gobject glib OPTIONAL_COMPONENTS gtksourceview )
if ( USE_GTK )
SET ( WITH_DEVELOPER_MODE ${ GTK3_FOUND } )
SET ( WITH_GLIB ${ GTK3_FOUND } )
include_directories ( SYSTEM ${ GTK3_INCLUDE_DIRS } )
# Set GTK link directory. This needs to be done before add_executable,
# otherwise the path is not used for linking clonk
link_directories ( ${ GTK3_LIBRARY_DIRS } )
endif ( )
# Select an audio library
find_package ( "Audio" )
if ( Audio_FOUND )
include_directories ( ${ Audio_INCLUDE_DIRS } )
endif ( )
# SDL
if ( USE_SDL_MAINLOOP OR ( Audio_TK STREQUAL "SDL_Mixer" ) )
find_package ( SDL )
SET ( HAVE_SDL ${ SDL_FOUND } )
include_directories ( ${ SDL_INCLUDE_DIR } )
endif ( )
2015-12-25 01:24:13 +00:00
############################################################################
# generated source files
############################################################################
2016-01-10 21:28:17 +00:00
find_program ( GLIB_COMPILE_RESOURCES glib-compile-resources )
2015-12-25 01:24:13 +00:00
add_custom_command (
2016-01-10 21:28:17 +00:00
O U T P U T m a p e - r e s o u r c e . c
2015-12-25 01:24:13 +00:00
C O M M A N D
2016-01-10 21:28:17 +00:00
$ { G L I B _ C O M P I L E _ R E S O U R C E S } " - - i n t e r n a l " " - - g e n e r a t e "
" - - t a r g e t " " m a p e - r e s o u r c e . c "
" - - s o u r c e d i r " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s
" $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / m a p e . x m l "
M A I N _ D E P E N D E N C Y s r c / r e s / m a p e . x m l
2015-12-25 01:24:13 +00:00
D E P E N D S
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c d . i c o
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c f . i c o
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c g . i c o
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c m . i c o
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c s . i c o
V E R B A T I M
)
add_custom_command (
2016-01-10 21:28:17 +00:00
O U T P U T e n g i n e - r e s o u r c e . c
2015-12-25 01:24:13 +00:00
C O M M A N D
2016-01-10 21:28:17 +00:00
$ { G L I B _ C O M P I L E _ R E S O U R C E S } " - - i n t e r n a l " " - - g e n e r a t e "
" - - t a r g e t " " e n g i n e - r e s o u r c e . c "
" - - s o u r c e d i r " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s
" $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / e n g i n e . x m l "
M A I N _ D E P E N D E N C Y s r c / r e s / e n g i n e . x m l
2015-12-25 01:24:13 +00:00
D E P E N D S
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / B r u s h _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / H a l t _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / P i c k e r _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / C u r s o r _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / P l a y _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / D y n a m i c _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / L i n e _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / R e c t _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / E x a c t _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / M o u s e _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / S t a t i c _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / F i l l _ T r a n s . p n g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c . i c o
V E R B A T I M
)
2015-12-25 01:36:47 +00:00
############################################################################
# Mac OS bundle setup
############################################################################
if ( APPLE )
list ( APPEND OC_BUNDLE_RESOURCES
s r c / r e s / o c . i c n s
s r c / r e s / o c d . i c n s s r c / r e s / o c f . i c n s s r c / r e s / o c g . i c n s
s r c / r e s / C 4 P . i c n s s r c / r e s / o c s . i c n s s r c / r e s / o c u . i c n s
s r c / r e s / M o u s e _ T r a n s . p n g
s r c / r e s / C u r s o r _ T r a n s . p n g
s r c / r e s / B r u s h _ T r a n s . p n g
s r c / r e s / P l a y _ T r a n s . p n g
s r c / r e s / H a l t _ T r a n s . p n g
s r c / r e s / D y n a m i c _ T r a n s . p n g
s r c / r e s / S t a t i c _ T r a n s . p n g
s r c / r e s / E x a c t _ T r a n s . p n g
s r c / r e s / L i n e _ T r a n s . p n g
s r c / r e s / R e c t _ T r a n s . p n g
s r c / r e s / F i l l _ T r a n s . p n g
s r c / r e s / P i c k e r _ T r a n s . p n g
)
if ( CMAKE_GENERATOR STREQUAL Xcode )
list ( APPEND OC_BUNDLE_RESOURCES
s r c / r e s / M a i n M e n u . x i b
s r c / r e s / F u l l S c r e e n . x i b
s r c / r e s / E d i t o r G U I W i n d o w . x i b
s r c / r e s / E d i t o r V i e w p o r t . x i b
s r c / r e s / E d i t o r . x i b
)
else ( )
list ( APPEND OC_BUNDLE_RESOURCES
s r c / r e s / n i b / M a i n M e n u . n i b
s r c / r e s / n i b / F u l l S c r e e n . n i b
s r c / r e s / n i b / E d i t o r G U I W i n d o w . n i b
s r c / r e s / n i b / E d i t o r V i e w p o r t . n i b
s r c / r e s / n i b / E d i t o r . n i b
)
endif ( )
# Add icon resources
set_source_files_properties (
$ { O C _ B U N D L E _ R E S O U R C E S }
P R O P E R T I E S M A C O S X _ P A C K A G E _ L O C A T I O N R e s o u r c e s
)
endif ( )
2009-10-20 03:39:24 +00:00
############################################################################
# List target source files. Don't directly create a target since we condi-
# tionally add more sources depending on configuration options later.
############################################################################
# OC_CLONK_SOURCES: Sources for OpenClonk that are needed by every build.
# OC_SYSTEM_SOURCES: Sources for OpenClonk that are only needed by specific
2015-12-15 19:18:25 +00:00
# platforms.
# OC_GUI_SOURCES: Sources that are only needed by GUI applications.
2009-08-12 13:01:14 +00:00
set ( OC_CLONK_SOURCES
2009-11-25 15:04:32 +00:00
s r c / C 4 G l o b a l s . c p p
2011-10-03 15:19:24 +00:00
s r c / c 4 g r o u p / C 4 C o m p o n e n t s . h
2009-08-12 13:01:14 +00:00
s r c / c 4 g r o u p / C 4 E x t r a . c p p
s r c / c 4 g r o u p / C 4 E x t r a . h
s r c / c 4 g r o u p / C 4 L a n g u a g e . c p p
s r c / c 4 g r o u p / C 4 L a n g u a g e . h
2015-12-28 22:00:06 +00:00
s r c / C 4 I n c l u d e . c p p
2009-08-12 13:01:14 +00:00
s r c / C 4 I n c l u d e . h
s r c / C 4 P r o t o t y p e s . h
s r c / C 4 V e r s i o n . h
s r c / c o n f i g / C 4 C o n f i g . c p p
s r c / c o n f i g / C 4 C o n f i g . h
2009-08-12 20:03:50 +00:00
s r c / c o n f i g / C 4 C o n s t a n t s . h
2011-01-06 20:18:13 +00:00
s r c / c o n f i g / C 4 R e l o c . c p p
s r c / c o n f i g / C 4 R e l o c . h
2009-08-12 13:01:14 +00:00
s r c / c o n t r o l / C 4 C o n t r o l . c p p
s r c / c o n t r o l / C 4 C o n t r o l . h
s r c / c o n t r o l / C 4 G a m e C o n t r o l . c p p
s r c / c o n t r o l / C 4 G a m e C o n t r o l . h
s r c / c o n t r o l / C 4 G a m e P a r a m e t e r s . c p p
s r c / c o n t r o l / C 4 G a m e P a r a m e t e r s . h
s r c / c o n t r o l / C 4 G a m e S a v e . c p p
s r c / c o n t r o l / C 4 G a m e S a v e . h
2009-08-12 15:27:43 +00:00
s r c / c o n t r o l / C 4 P l a y e r C o n t r o l . c p p
s r c / c o n t r o l / C 4 P l a y e r C o n t r o l . h
2009-08-12 13:01:14 +00:00
s r c / c o n t r o l / C 4 P l a y e r I n f o C o n f l i c t s . c p p
s r c / c o n t r o l / C 4 P l a y e r I n f o . c p p
s r c / c o n t r o l / C 4 P l a y e r I n f o . h
s r c / c o n t r o l / C 4 R e c o r d . c p p
s r c / c o n t r o l / C 4 R e c o r d . h
s r c / c o n t r o l / C 4 R o u n d R e s u l t s . c p p
s r c / c o n t r o l / C 4 R o u n d R e s u l t s . h
s r c / c o n t r o l / C 4 T e a m s . c p p
s r c / c o n t r o l / C 4 T e a m s . h
s r c / e d i t o r / C 4 C o n s o l e . c p p
2010-12-13 02:11:06 +00:00
s r c / e d i t o r / C 4 C o n s o l e G U I C o m m o n . h
2011-10-03 15:19:24 +00:00
s r c / e d i t o r / C 4 C o n s o l e G U I . h
2009-08-12 13:01:14 +00:00
s r c / e d i t o r / C 4 C o n s o l e . h
s r c / e d i t o r / C 4 E d i t C u r s o r . c p p
s r c / e d i t o r / C 4 E d i t C u r s o r . h
s r c / e d i t o r / C 4 O b j e c t L i s t D l g . c p p
s r c / e d i t o r / C 4 O b j e c t L i s t D l g . h
s r c / e d i t o r / C 4 T o o l s D l g . c p p
s r c / e d i t o r / C 4 T o o l s D l g . h
2012-04-27 17:04:43 +00:00
s r c / e d i t o r / C 4 V i e w p o r t W i n d o w . c p p
s r c / e d i t o r / C 4 V i e w p o r t W i n d o w . h
s r c / g a m e / C 4 A p p l i c a t i o n . c p p
s r c / g a m e / C 4 A p p l i c a t i o n . h
s r c / g a m e / C 4 F u l l S c r e e n . c p p
s r c / g a m e / C 4 F u l l S c r e e n . h
s r c / g a m e / C 4 G a m e . c p p
s r c / g a m e / C 4 G a m e . h
2009-08-12 13:01:14 +00:00
s r c / g a m e / C 4 G a m e V e r s i o n . h
2012-04-27 17:04:43 +00:00
s r c / g a m e / C 4 G r a p h i c s S y s t e m . c p p
s r c / g a m e / C 4 G r a p h i c s S y s t e m . h
2009-08-12 13:01:14 +00:00
s r c / g a m e / C 4 P h y s i c s . h
2012-04-27 17:04:43 +00:00
s r c / g a m e / C 4 V i e w p o r t . c p p
s r c / g a m e / C 4 V i e w p o r t . h
s r c / g a m e s c r i p t / C 4 E f f e c t . c p p
s r c / g a m e s c r i p t / C 4 E f f e c t . h
s r c / g a m e s c r i p t / C 4 F i n d O b j e c t . c p p
s r c / g a m e s c r i p t / C 4 F i n d O b j e c t . h
s r c / g a m e s c r i p t / C 4 G a m e S c r i p t . c p p
s r c / g a m e s c r i p t / C 4 S c r i p t . h
s r c / g a m e s c r i p t / C 4 T r a n s f e r Z o n e . c p p
s r c / g a m e s c r i p t / C 4 T r a n s f e r Z o n e . h
s r c / g r a p h i c s / B i t m a p 2 5 6 . c p p
s r c / g r a p h i c s / B i t m a p 2 5 6 . h
s r c / g r a p h i c s / C 4 D r a w . c p p
s r c / g r a p h i c s / C 4 D r a w G L . c p p
s r c / g r a p h i c s / C 4 D r a w G L C t x . c p p
s r c / g r a p h i c s / C 4 D r a w G L . h
2013-01-27 22:52:16 +00:00
s r c / g r a p h i c s / C 4 D r a w M e s h G L . c p p
2012-04-27 17:04:43 +00:00
s r c / g r a p h i c s / C 4 D r a w T . c p p
s r c / g r a p h i c s / C 4 D r a w T . h
s r c / g r a p h i c s / C 4 D r a w . h
s r c / g r a p h i c s / C 4 F a c e t . c p p
s r c / g r a p h i c s / C 4 F a c e t E x . c p p
s r c / g r a p h i c s / C 4 F a c e t E x . h
s r c / g r a p h i c s / C 4 F a c e t . h
2012-11-12 01:30:16 +00:00
s r c / g r a p h i c s / C 4 F o n t L o a d e r . c p p
s r c / g r a p h i c s / C 4 F o n t L o a d e r . h
2012-04-27 17:04:43 +00:00
s r c / g r a p h i c s / C 4 G r a p h i c s R e s o u r c e . c p p
s r c / g r a p h i c s / C 4 G r a p h i c s R e s o u r c e . h
2014-11-20 10:52:14 +00:00
s r c / g r a p h i c s / C 4 S h a d e r . c p p
s r c / g r a p h i c s / C 4 S h a d e r . h
2012-04-27 17:04:43 +00:00
s r c / g r a p h i c s / C 4 S u r f a c e . c p p
s r c / g r a p h i c s / C 4 S u r f a c e . h
s r c / g r a p h i c s / C 4 S u r f a c e L o a d e r s . c p p
s r c / g r a p h i c s / C S u r f a c e 8 . c p p
s r c / g r a p h i c s / C S u r f a c e 8 . h
s r c / g r a p h i c s / S t d P N G . c p p
s r c / g r a p h i c s / S t d P N G . h
2009-08-12 13:01:14 +00:00
s r c / g u i / C 4 C h a t D l g . c p p
s r c / g u i / C 4 C h a t D l g . h
s r c / g u i / C 4 D o w n l o a d D l g . c p p
s r c / g u i / C 4 D o w n l o a d D l g . h
s r c / g u i / C 4 F i l e S e l D l g . c p p
s r c / g u i / C 4 F i l e S e l D l g . h
s r c / g u i / C 4 F o l d e r . c p p
s r c / g u i / C 4 F o l d e r . h
s r c / g u i / C 4 G a m e D i a l o g s . c p p
s r c / g u i / C 4 G a m e D i a l o g s . h
s r c / g u i / C 4 G a m e L o b b y . c p p
s r c / g u i / C 4 G a m e L o b b y . h
s r c / g u i / C 4 G a m e M e s s a g e . c p p
s r c / g u i / C 4 G a m e M e s s a g e . h
s r c / g u i / C 4 G a m e O p t i o n s . c p p
s r c / g u i / C 4 G a m e O p t i o n s . h
s r c / g u i / C 4 G a m e O v e r D l g . c p p
s r c / g u i / C 4 G a m e O v e r D l g . h
2012-02-28 17:28:16 +00:00
s r c / g u i / C 4 G f x E r r o r D l g . c p p
s r c / g u i / C 4 G f x E r r o r D l g . h
2009-08-12 13:01:14 +00:00
s r c / g u i / C 4 G u i B u t t o n . c p p
s r c / g u i / C 4 G u i C h e c k B o x . c p p
s r c / g u i / C 4 G u i C o m b o B o x . c p p
s r c / g u i / C 4 G u i C o n t a i n e r s . c p p
s r c / g u i / C 4 G u i . c p p
s r c / g u i / C 4 G u i D i a l o g s . c p p
s r c / g u i / C 4 G u i E d i t . c p p
s r c / g u i / C 4 G u i . h
s r c / g u i / C 4 G u i L a b e l s . c p p
s r c / g u i / C 4 G u i L i s t B o x . c p p
s r c / g u i / C 4 G u i M e n u . c p p
s r c / g u i / C 4 G u i T a b u l a r . c p p
2014-10-13 16:48:03 +00:00
s r c / g u i / C 4 S c r i p t G u i W i n d o w . c p p
2009-08-12 13:01:14 +00:00
s r c / g u i / C 4 K e y b o a r d I n p u t . c p p
s r c / g u i / C 4 K e y b o a r d I n p u t . h
s r c / g u i / C 4 L o a d e r S c r e e n . c p p
s r c / g u i / C 4 L o a d e r S c r e e n . h
s r c / g u i / C 4 M a i n M e n u . c p p
s r c / g u i / C 4 M a i n M e n u . h
s r c / g u i / C 4 M e n u . c p p
s r c / g u i / C 4 M e n u . h
s r c / g u i / C 4 M e s s a g e B o a r d . c p p
s r c / g u i / C 4 M e s s a g e B o a r d . h
s r c / g u i / C 4 M e s s a g e I n p u t . c p p
s r c / g u i / C 4 M e s s a g e I n p u t . h
s r c / g u i / C 4 M o u s e C o n t r o l . c p p
s r c / g u i / C 4 M o u s e C o n t r o l . h
s r c / g u i / C 4 P l a y e r I n f o L i s t B o x . c p p
s r c / g u i / C 4 P l a y e r I n f o L i s t B o x . h
s r c / g u i / C 4 S c o r e b o a r d . c p p
s r c / g u i / C 4 S c o r e b o a r d . h
2015-09-04 03:15:48 +00:00
s r c / g u i / C 4 S c r i p t G u i W i n d o w . c p p
s r c / g u i / C 4 S c r i p t G u i W i n d o w . h
2009-08-12 13:01:14 +00:00
s r c / g u i / C 4 S t a r t u p A b o u t D l g . c p p
s r c / g u i / C 4 S t a r t u p A b o u t D l g . h
s r c / g u i / C 4 S t a r t u p . c p p
s r c / g u i / C 4 S t a r t u p . h
s r c / g u i / C 4 S t a r t u p M a i n D l g . c p p
s r c / g u i / C 4 S t a r t u p M a i n D l g . h
s r c / g u i / C 4 S t a r t u p N e t D l g . c p p
s r c / g u i / C 4 S t a r t u p N e t D l g . h
s r c / g u i / C 4 S t a r t u p O p t i o n s D l g . c p p
s r c / g u i / C 4 S t a r t u p O p t i o n s D l g . h
s r c / g u i / C 4 S t a r t u p P l r S e l D l g . c p p
s r c / g u i / C 4 S t a r t u p P l r S e l D l g . h
s r c / g u i / C 4 S t a r t u p S c e n S e l D l g . c p p
s r c / g u i / C 4 S t a r t u p S c e n S e l D l g . h
s r c / g u i / C 4 U p p e r B o a r d . c p p
s r c / g u i / C 4 U p p e r B o a r d . h
2014-10-11 21:13:10 +00:00
s r c / l a n d s c a p e / f o w / C 4 F o W . c p p
s r c / l a n d s c a p e / f o w / C 4 F o W . h
2014-11-17 14:35:50 +00:00
s r c / l a n d s c a p e / f o w / C 4 F o W A m b i e n t . c p p
s r c / l a n d s c a p e / f o w / C 4 F o W A m b i e n t . h
2014-10-12 10:59:25 +00:00
s r c / l a n d s c a p e / f o w / C 4 F o W B e a m . c p p
s r c / l a n d s c a p e / f o w / C 4 F o W B e a m . h
2014-10-11 21:13:10 +00:00
s r c / l a n d s c a p e / f o w / C 4 F o W L i g h t . c p p
s r c / l a n d s c a p e / f o w / C 4 F o W L i g h t . h
s r c / l a n d s c a p e / f o w / C 4 F o W L i g h t S e c t i o n . c p p
s r c / l a n d s c a p e / f o w / C 4 F o W L i g h t S e c t i o n . h
s r c / l a n d s c a p e / f o w / C 4 F o W R e g i o n . c p p
s r c / l a n d s c a p e / f o w / C 4 F o W R e g i o n . h
2014-11-16 17:57:42 +00:00
s r c / l a n d s c a p e / f o w / C 4 F o W D r a w S t r a t e g y . c p p
s r c / l a n d s c a p e / f o w / C 4 F o W D r a w S t r a t e g y . h
s r c / l a n d s c a p e / f o w / C 4 F o W B e a m T r i a n g l e . h
2012-04-27 17:04:43 +00:00
s r c / l a n d s c a p e / C 4 L a n d s c a p e . c p p
s r c / l a n d s c a p e / C 4 L a n d s c a p e . h
s r c / l a n d s c a p e / C 4 L a n d s c a p e R e n d e r C l a s s i c . c p p
s r c / l a n d s c a p e / C 4 L a n d s c a p e R e n d e r . c p p
s r c / l a n d s c a p e / C 4 L a n d s c a p e R e n d e r . h
s r c / l a n d s c a p e / C 4 M a p . c p p
s r c / l a n d s c a p e / C 4 M a p C r e a t o r S 2 . c p p
s r c / l a n d s c a p e / C 4 M a p C r e a t o r S 2 . h
s r c / l a n d s c a p e / C 4 M a p . h
2013-03-18 23:35:00 +00:00
s r c / l a n d s c a p e / C 4 M a p S c r i p t . c p p
s r c / l a n d s c a p e / C 4 M a p S c r i p t A l g o . c p p
s r c / l a n d s c a p e / C 4 M a p S c r i p t . h
2012-04-27 17:04:43 +00:00
s r c / l a n d s c a p e / C 4 M a s s M o v e r . c p p
s r c / l a n d s c a p e / C 4 M a s s M o v e r . h
s r c / l a n d s c a p e / C 4 M a t e r i a l . c p p
s r c / l a n d s c a p e / C 4 M a t e r i a l . h
s r c / l a n d s c a p e / C 4 M a t e r i a l L i s t . c p p
s r c / l a n d s c a p e / C 4 M a t e r i a l L i s t . h
s r c / l a n d s c a p e / C 4 P a r t i c l e s . c p p
s r c / l a n d s c a p e / C 4 P a r t i c l e s . h
s r c / l a n d s c a p e / C 4 P a t h F i n d e r . c p p
s r c / l a n d s c a p e / C 4 P a t h F i n d e r . h
s r c / l a n d s c a p e / C 4 P X S . c p p
s r c / l a n d s c a p e / C 4 P X S . h
s r c / l a n d s c a p e / C 4 S c e n a r i o . c p p
2013-01-08 22:39:34 +00:00
s r c / l a n d s c a p e / C 4 S c e n a r i o S e c t i o n . c p p
2012-04-27 17:04:43 +00:00
s r c / l a n d s c a p e / C 4 S c e n a r i o . h
s r c / l a n d s c a p e / C 4 S k y . c p p
s r c / l a n d s c a p e / C 4 S k y . h
s r c / l a n d s c a p e / C 4 S o l i d M a s k . c p p
s r c / l a n d s c a p e / C 4 S o l i d M a s k . h
s r c / l a n d s c a p e / C 4 T e x t u r e . c p p
s r c / l a n d s c a p e / C 4 T e x t u r e . h
2015-10-09 18:47:30 +00:00
s r c / l a n d s c a p e / C 4 T e x t u r e S h a p e . c p p
s r c / l a n d s c a p e / C 4 T e x t u r e S h a p e . h
2012-04-27 17:04:43 +00:00
s r c / l a n d s c a p e / C 4 W e a t h e r . c p p
s r c / l a n d s c a p e / C 4 W e a t h e r . h
2009-08-12 13:01:14 +00:00
s r c / l i b / C 4 L o g B u f . c p p
s r c / l i b / C 4 L o g B u f . h
s r c / l i b / C 4 L o g . c p p
s r c / l i b / C 4 L o g . h
s r c / l i b / C 4 N a m e L i s t . c p p
s r c / l i b / C 4 N a m e L i s t . h
2009-08-13 23:46:32 +00:00
s r c / l i b / C 4 R e c t . c p p
s r c / l i b / C 4 R e c t . h
2009-08-12 13:01:14 +00:00
s r c / l i b / C 4 S t a t . c p p
s r c / l i b / C 4 S t a t . h
s r c / l i b / S t d A d a p t o r s . h
s r c / l i b / S t d C o l o r s . h
2011-01-19 21:55:18 +00:00
s r c / l i b / S t d M e s h . c p p
s r c / l i b / S t d M e s h . h
s r c / l i b / S t d M e s h L o a d e r B i n a r y C h u n k s . c p p
s r c / l i b / S t d M e s h L o a d e r B i n a r y C h u n k s . h
2011-10-03 15:19:24 +00:00
s r c / l i b / S t d M e s h L o a d e r B i n a r y . c p p
2011-01-19 21:55:18 +00:00
s r c / l i b / S t d M e s h L o a d e r D a t a S t r e a m . h
2015-08-05 03:16:36 +00:00
s r c / l i b / S t d M e s h L o a d e r . c p p
2011-10-03 15:19:24 +00:00
s r c / l i b / S t d M e s h L o a d e r . h
2011-01-19 21:55:18 +00:00
s r c / l i b / S t d M e s h L o a d e r X m l . c p p
s r c / l i b / S t d M e s h M a t e r i a l . c p p
s r c / l i b / S t d M e s h M a t e r i a l . h
2011-12-29 14:41:52 +00:00
s r c / l i b / S t d M e s h M a t h . c p p
s r c / l i b / S t d M e s h M a t h . h
2011-08-17 21:50:33 +00:00
s r c / l i b / S t d M e s h U p d a t e . c p p
s r c / l i b / S t d M e s h U p d a t e . h
2009-08-12 13:01:14 +00:00
s r c / n e t w o r k / C 4 C l i e n t . c p p
s r c / n e t w o r k / C 4 C l i e n t . h
s r c / n e t w o r k / C 4 G a m e C o n t r o l N e t w o r k . c p p
s r c / n e t w o r k / C 4 G a m e C o n t r o l N e t w o r k . h
s r c / n e t w o r k / C 4 I n t e r a c t i v e T h r e a d . c p p
s r c / n e t w o r k / C 4 I n t e r a c t i v e T h r e a d . h
s r c / n e t w o r k / C 4 L e a g u e . c p p
s r c / n e t w o r k / C 4 L e a g u e . h
s r c / n e t w o r k / C 4 N e t w o r k 2 C l i e n t . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 C l i e n t . h
s r c / n e t w o r k / C 4 N e t w o r k 2 . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 D i a l o g s . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 D i a l o g s . h
s r c / n e t w o r k / C 4 N e t w o r k 2 D i s c o v e r . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 D i s c o v e r . h
s r c / n e t w o r k / C 4 N e t w o r k 2 . h
s r c / n e t w o r k / C 4 N e t w o r k 2 I O . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 I O . h
s r c / n e t w o r k / C 4 N e t w o r k 2 I R C . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 I R C . h
s r c / n e t w o r k / C 4 N e t w o r k 2 P l a y e r s . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 P l a y e r s . h
s r c / n e t w o r k / C 4 N e t w o r k 2 R e f e r e n c e . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 R e f e r e n c e . h
s r c / n e t w o r k / C 4 N e t w o r k 2 R e s . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 R e s D l g . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 R e s . h
s r c / n e t w o r k / C 4 N e t w o r k 2 S t a t s . c p p
s r c / n e t w o r k / C 4 N e t w o r k 2 S t a t s . h
2012-01-15 20:27:16 +00:00
s r c / n e t w o r k / C 4 N e t w o r k 2 U P n P . h
2009-08-12 13:01:14 +00:00
s r c / n e t w o r k / C 4 P a c k e t 2 . c p p
s r c / n e t w o r k / C 4 P a c k e t B a s e . h
2012-04-27 17:04:43 +00:00
s r c / o b j e c t / C 4 A c t i o n . c p p
s r c / o b j e c t / C 4 C o m m a n d . c p p
s r c / o b j e c t / C 4 C o m m a n d . h
s r c / o b j e c t / C 4 D e f . c p p
s r c / o b j e c t / C 4 D e f G r a p h i c s . c p p
s r c / o b j e c t / C 4 D e f G r a p h i c s . h
s r c / o b j e c t / C 4 D e f . h
s r c / o b j e c t / C 4 D e f L i s t . c p p
s r c / o b j e c t / C 4 D e f L i s t . h
s r c / o b j e c t / C 4 G a m e O b j e c t s . c p p
s r c / o b j e c t / C 4 G a m e O b j e c t s . h
2013-03-03 18:25:18 +00:00
s r c / o b j e c t / C 4 I d . c p p
s r c / o b j e c t / C 4 I d . h
2012-04-27 17:04:43 +00:00
s r c / o b j e c t / C 4 I D L i s t . c p p
s r c / o b j e c t / C 4 I D L i s t . h
s r c / o b j e c t / C 4 I n f o C o r e . c p p
s r c / o b j e c t / C 4 I n f o C o r e . h
s r c / o b j e c t / C 4 M e s h A n i m a t i o n . c p p
s r c / o b j e c t / C 4 M e s h A n i m a t i o n . h
s r c / o b j e c t / C 4 M o v e m e n t . c p p
s r c / o b j e c t / C 4 O b j e c t C o m . c p p
s r c / o b j e c t / C 4 O b j e c t C o m . h
s r c / o b j e c t / C 4 O b j e c t . c p p
s r c / o b j e c t / C 4 O b j e c t . h
s r c / o b j e c t / C 4 O b j e c t I n f o . c p p
s r c / o b j e c t / C 4 O b j e c t I n f o . h
s r c / o b j e c t / C 4 O b j e c t I n f o L i s t . c p p
s r c / o b j e c t / C 4 O b j e c t I n f o L i s t . h
s r c / o b j e c t / C 4 O b j e c t L i s t . c p p
s r c / o b j e c t / C 4 O b j e c t L i s t . h
s r c / o b j e c t / C 4 O b j e c t M e n u . c p p
s r c / o b j e c t / C 4 O b j e c t M e n u . h
s r c / o b j e c t / C 4 O b j e c t P t r . c p p
s r c / o b j e c t / C 4 O b j e c t P t r . h
s r c / o b j e c t / C 4 O b j e c t S c r i p t . c p p
s r c / o b j e c t / C 4 S e c t o r . c p p
s r c / o b j e c t / C 4 S e c t o r . h
s r c / o b j e c t / C 4 S h a p e . c p p
s r c / o b j e c t / C 4 S h a p e . h
2011-10-03 15:19:24 +00:00
s r c / p l a t f o r m / C 4 A p p . c p p
s r c / p l a t f o r m / C 4 A p p . h
2012-04-27 17:04:43 +00:00
s r c / p l a t f o r m / C 4 A p p W i n 3 2 I m p l . h
2009-08-12 13:01:14 +00:00
s r c / p l a t f o r m / C 4 F i l e M o n i t o r . c p p
s r c / p l a t f o r m / C 4 F i l e M o n i t o r . h
s r c / p l a t f o r m / C 4 G a m e P a d C o n . c p p
s r c / p l a t f o r m / C 4 G a m e P a d C o n . h
s r c / p l a t f o r m / C 4 M u s i c F i l e . c p p
s r c / p l a t f o r m / C 4 M u s i c F i l e . h
s r c / p l a t f o r m / C 4 M u s i c S y s t e m . c p p
s r c / p l a t f o r m / C 4 M u s i c S y s t e m . h
2011-10-03 15:19:24 +00:00
s r c / p l a t f o r m / C 4 S o u n d L o a d e r s . c p p
s r c / p l a t f o r m / C 4 S o u n d L o a d e r s . h
2014-09-21 19:46:12 +00:00
s r c / p l a t f o r m / C 4 S o u n d I n c l u d e s . h
2015-08-28 01:44:23 +00:00
s r c / p l a t f o r m / C 4 S o u n d I n s t a n c e . c p p
s r c / p l a t f o r m / C 4 S o u n d I n s t a n c e . h
s r c / p l a t f o r m / C 4 S o u n d M o d i f i e r s . c p p
s r c / p l a t f o r m / C 4 S o u n d M o d i f i e r s . h
2009-08-12 13:01:14 +00:00
s r c / p l a t f o r m / C 4 S o u n d S y s t e m . c p p
s r c / p l a t f o r m / C 4 S o u n d S y s t e m . h
2013-12-07 14:28:06 +00:00
s r c / p l a t f o r m / C 4 T i m e M i l l i s e c o n d s . c p p
2015-08-28 01:44:23 +00:00
s r c / p l a t f o r m / C 4 T i m e M i l l i s e c o n d s . h
2011-10-03 15:19:24 +00:00
s r c / p l a t f o r m / C 4 W i n d o w . h
2011-03-13 14:48:45 +00:00
s r c / p l a t f o r m / C 4 w i n d o w s w r a p p e r . h
2012-03-12 19:43:27 +00:00
s r c / p l a t f o r m / P l a t f o r m A b s t r a c t i o n . c p p
2010-03-08 22:59:11 +00:00
s r c / p l a t f o r m / P l a t f o r m A b s t r a c t i o n . h
2009-08-12 13:01:14 +00:00
s r c / p l a t f o r m / S t d S y n c . h
2012-04-27 17:04:43 +00:00
s r c / p l a y e r / C 4 P l a y e r . c p p
s r c / p l a y e r / C 4 P l a y e r . h
s r c / p l a y e r / C 4 P l a y e r L i s t . c p p
s r c / p l a y e r / C 4 P l a y e r L i s t . h
s r c / p l a y e r / C 4 R a n k S y s t e m . c p p
s r c / p l a y e r / C 4 R a n k S y s t e m . h
2014-09-24 21:08:40 +00:00
s r c / p l a y e r / C 4 S c e n a r i o P a r a m e t e r s . c p p
s r c / p l a y e r / C 4 S c e n a r i o P a r a m e t e r s . h
2010-02-24 16:40:18 +00:00
s r c / s c r i p t / C 4 A u l D e b u g . c p p
2011-10-03 15:19:24 +00:00
s r c / s c r i p t / C 4 A u l D e b u g . h
2012-02-01 21:11:46 +00:00
t h i r d p a r t y / t i m s o r t / s o r t . h
2009-08-12 13:01:14 +00:00
)
2009-09-21 04:04:52 +00:00
2013-01-08 23:10:27 +00:00
set ( MAPE_BASE_SOURCES
2015-12-28 22:00:06 +00:00
s r c / C 4 I n c l u d e . c p p
2013-01-08 23:10:27 +00:00
s r c / l a n d s c a p e / C 4 M a p C r e a t o r S 2 . c p p
s r c / l a n d s c a p e / C 4 M a p C r e a t o r S 2 . h
2014-08-03 23:01:08 +00:00
s r c / l a n d s c a p e / C 4 M a p S c r i p t A l g o . c p p
s r c / l a n d s c a p e / C 4 M a p S c r i p t . c p p
s r c / l a n d s c a p e / C 4 M a p S c r i p t . h
2013-01-08 23:10:27 +00:00
s r c / l a n d s c a p e / C 4 M a t e r i a l . c p p
s r c / l a n d s c a p e / C 4 M a t e r i a l . h
s r c / l a n d s c a p e / C 4 T e x t u r e . c p p
s r c / l a n d s c a p e / C 4 T e x t u r e . h
s r c / l a n d s c a p e / C 4 S c e n a r i o . c p p
s r c / l a n d s c a p e / C 4 S c e n a r i o . h
2014-08-03 23:01:08 +00:00
s r c / g r a p h i c s / B i t m a p 2 5 6 . c p p
s r c / g r a p h i c s / B i t m a p 2 5 6 . h
s r c / g r a p h i c s / C S u r f a c e 8 . c p p
s r c / g r a p h i c s / C S u r f a c e 8 . h
2013-01-08 23:10:27 +00:00
s r c / l i b / C 4 N a m e L i s t . c p p
s r c / l i b / C 4 N a m e L i s t . h
s r c / l i b / C 4 R e c t . c p p
s r c / l i b / C 4 R e c t . h
2013-03-03 18:25:18 +00:00
s r c / o b j e c t / C 4 I d . c p p
s r c / o b j e c t / C 4 I d . h
2013-01-08 23:10:27 +00:00
)
2009-09-21 04:04:52 +00:00
set ( MAPE_SOURCES
2014-08-04 18:51:09 +00:00
s r c / m a p e / c p p - h a n d l e s / c 4 d e f - h a n d l e . c p p
2009-09-27 01:54:47 +00:00
s r c / m a p e / c p p - h a n d l e s / g r o u p - h a n d l e . h
s r c / m a p e / c p p - h a n d l e s / g r o u p - h a n d l e . c p p
2014-10-17 22:26:45 +00:00
s r c / m a p e / c p p - h a n d l e s / l a n d s c a p e - h a n d l e . c p p
2013-01-12 13:05:54 +00:00
s r c / m a p e / c p p - h a n d l e s / l o g - h a n d l e . h
s r c / m a p e / c p p - h a n d l e s / l o g - h a n d l e . c p p
2013-01-06 23:16:43 +00:00
s r c / m a p e / c p p - h a n d l e s / m a p g e n - h a n d l e . h
s r c / m a p e / c p p - h a n d l e s / m a p g e n - h a n d l e . c p p
2009-10-01 02:54:10 +00:00
s r c / m a p e / c p p - h a n d l e s / m a t e r i a l - h a n d l e . h
s r c / m a p e / c p p - h a n d l e s / m a t e r i a l - h a n d l e . c p p
2013-01-07 20:07:58 +00:00
s r c / m a p e / c p p - h a n d l e s / r a n d o m - h a n d l e . h
s r c / m a p e / c p p - h a n d l e s / r a n d o m - h a n d l e . c p p
2012-02-18 20:10:07 +00:00
s r c / m a p e / c p p - h a n d l e s / t e x t u r e - h a n d l e . h
s r c / m a p e / c p p - h a n d l e s / t e x t u r e - h a n d l e . c p p
2013-01-10 21:30:14 +00:00
s r c / m a p e / c p p - h a n d l e s / v e r s i o n - h a n d l e . h
s r c / m a p e / c p p - h a n d l e s / v e r s i o n - h a n d l e . c p p
2013-01-08 23:10:27 +00:00
s r c / m a p e / c p p - h a n d l e s / s t u b - h a n d l e . c p p
2009-09-21 04:04:52 +00:00
s r c / m a p e / c o n f i g f i l e . c
s r c / m a p e / c o n f i g f i l e . h
s r c / m a p e / d i s k v i e w . c
s r c / m a p e / d i s k v i e w . h
s r c / m a p e / e d i t v i e w . c
s r c / m a p e / e d i t v i e w . h
s r c / m a p e / f i l e i c o n . c
s r c / m a p e / f i l e i c o n . h
s r c / m a p e / f o r w a r d . h
2009-09-27 01:54:47 +00:00
s r c / m a p e / g r o u p . c
2009-09-21 04:04:52 +00:00
s r c / m a p e / g r o u p . h
s r c / m a p e / h e a d e r . c
s r c / m a p e / h e a d e r . h
s r c / m a p e / i c o n v i e w . c
s r c / m a p e / i c o n v i e w . h
s r c / m a p e / m a p e . c
2013-01-06 23:16:43 +00:00
s r c / m a p e / m a p g e n . c
2009-09-21 04:04:52 +00:00
s r c / m a p e / m a p g e n . h
2009-10-01 02:54:10 +00:00
s r c / m a p e / m a t e r i a l . c
2009-09-21 04:04:52 +00:00
s r c / m a p e / m a t e r i a l . h
s r c / m a p e / m a t t e x v i e w . c
s r c / m a p e / m a t t e x v i e w . h
s r c / m a p e / p r e f e r e n c e s . c
s r c / m a p e / p r e f e r e n c e s . h
s r c / m a p e / p r e f e r e n c e s d i a l o g . c
s r c / m a p e / p r e f e r e n c e s d i a l o g . h
s r c / m a p e / p r e v i e w . c
s r c / m a p e / p r e v i e w . h
2013-01-07 20:07:58 +00:00
s r c / m a p e / r a n d o m . c
2009-09-21 04:04:52 +00:00
s r c / m a p e / r a n d o m . h
s r c / m a p e / s t a t u s b a r . c
s r c / m a p e / s t a t u s b a r . h
2012-02-18 20:10:07 +00:00
s r c / m a p e / t e x t u r e . c
2009-09-21 04:04:52 +00:00
s r c / m a p e / t e x t u r e . h
s r c / m a p e / w i n d o w . c
s r c / m a p e / w i n d o w . h
2016-01-10 21:28:17 +00:00
m a p e - r e s o u r c e . c
2009-09-21 04:04:52 +00:00
)
2012-03-23 21:53:56 +00:00
# source files specific to an operating system
if ( APPLE )
list ( APPEND OC_SYSTEM_SOURCES
2015-12-24 00:30:01 +00:00
s r c / p l a t f o r m / C 4 A p p M a c . m m
2012-03-23 21:53:56 +00:00
s r c / p l a t f o r m / C 4 F i l e M o n i t o r M a c . m m
2012-09-02 13:39:29 +00:00
s r c / p l a t f o r m / C 4 A p p D e l e g a t e . h
s r c / p l a t f o r m / C 4 A p p D e l e g a t e . m m
2014-01-25 15:11:55 +00:00
s r c / p l a t f o r m / S t d S c h e d u l e r M a c . m m
2015-12-15 19:18:25 +00:00
s r c / p l a t f o r m / O b j e c t i v e C A s s o c i a t e d . h
2012-03-23 21:53:56 +00:00
)
2015-12-25 01:36:47 +00:00
list ( APPEND OC_GUI_SOURCES ${ OC_BUNDLE_RESOURCES } )
2012-03-23 21:53:56 +00:00
else ( )
2013-01-08 23:10:27 +00:00
list ( APPEND OC_SYSTEM_SOURCES
2012-04-27 17:04:43 +00:00
s r c / g a m e / C l o n k M a i n . c p p
2012-03-23 21:53:56 +00:00
)
endif ( )
2009-05-29 21:05:50 +00:00
if ( WIN32 )
2009-08-12 13:01:14 +00:00
list ( APPEND OC_SYSTEM_SOURCES
2011-03-01 12:28:13 +00:00
s r c / p l a t f o r m / C 4 C r a s h H a n d l e r W i n 3 2 . c p p
2015-12-15 19:18:25 +00:00
)
list ( APPEND OC_GUI_SOURCES
2014-05-18 16:59:19 +00:00
s r c / r e s / e n g i n e . r c
2009-08-10 15:59:18 +00:00
s r c / r e s / r e s o u r c e . h
2009-05-29 21:05:50 +00:00
)
2013-11-10 18:09:32 +00:00
configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/src/res/openclonk.manifest" "${CMAKE_CURRENT_BINARY_DIR}/openclonk.manifest" COPYONLY )
2010-12-27 03:49:02 +00:00
endif ( )
2015-12-25 01:32:01 +00:00
if ( NOT UPNP_FOUND )
list ( APPEND OC_SYSTEM_SOURCES
s r c / n e t w o r k / C 4 N e t w o r k 2 U P n P D u m m y . c p p
)
elseif ( UPNP_STYLE STREQUAL "Win32" )
list ( APPEND OC_SYSTEM_SOURCES
s r c / n e t w o r k / C 4 N e t w o r k 2 U P n P W i n 3 2 . c p p
)
elseif ( UPNP_STYLE STREQUAL "libupnp" )
list ( APPEND OC_SYSTEM_SOURCES
s r c / n e t w o r k / C 4 N e t w o r k 2 U P n P L i n u x . c p p
)
endif ( )
2012-03-23 21:53:56 +00:00
# source files specific to a GUI library
2009-05-29 21:05:50 +00:00
if ( USE_GTK )
2015-12-15 19:18:25 +00:00
list ( APPEND OC_GUI_SOURCES
2010-12-11 18:50:38 +00:00
s r c / e d i t o r / C 4 C o n s o l e G T K . c p p
2012-04-27 17:04:43 +00:00
s r c / e d i t o r / C 4 C o n s o l e G T K D l g . c p p
s r c / e d i t o r / C 4 C o n s o l e G T K D l g . h
2012-03-04 23:38:23 +00:00
s r c / p l a t f o r m / C 4 A p p G T K . c p p
s r c / p l a t f o r m / C 4 A p p G T K I m p l . h
2012-03-23 21:53:56 +00:00
s r c / p l a t f o r m / C 4 W i n d o w G T K . c p p
2016-01-10 21:28:17 +00:00
e n g i n e - r e s o u r c e . c
2012-03-23 21:53:56 +00:00
)
elseif ( USE_SDL_MAINLOOP )
2015-12-15 19:18:25 +00:00
list ( APPEND OC_GUI_SOURCES
2012-03-23 21:53:56 +00:00
s r c / p l a t f o r m / C 4 A p p S D L . c p p
s r c / p l a t f o r m / C 4 W i n d o w S D L . c p p
)
elseif ( WIN32 )
2015-12-15 19:18:25 +00:00
list ( APPEND OC_GUI_SOURCES
2012-03-23 21:53:56 +00:00
s r c / e d i t o r / C 4 C o n s o l e W i n 3 2 . c p p
s r c / p l a t f o r m / C 4 W i n d o w W i n 3 2 . c p p
s r c / p l a t f o r m / S t d J o y s t i c k . c p p
s r c / p l a t f o r m / S t d J o y s t i c k . h
)
elseif ( USE_COCOA )
2015-12-15 19:18:25 +00:00
list ( APPEND OC_GUI_SOURCES
2012-03-23 21:53:56 +00:00
s r c / e d i t o r / C 4 C o n s o l e C o c o a . m m
s r c / p l a t f o r m / C 4 W i n d o w M a c . m m
2012-09-02 13:39:29 +00:00
s r c / p l a t f o r m / C 4 A p p D e l e g a t e + M a i n M e n u A c t i o n s . h
s r c / p l a t f o r m / C 4 A p p D e l e g a t e + M a i n M e n u A c t i o n s . m m
2012-09-02 18:51:43 +00:00
s r c / g r a p h i c s / C 4 D r a w G L M a c . h
s r c / g r a p h i c s / C 4 D r a w G L M a c . m m
2012-09-02 13:39:29 +00:00
s r c / p l a t f o r m / C 4 W i n d o w C o n t r o l l e r . h
s r c / p l a t f o r m / C 4 W i n d o w C o n t r o l l e r . m m
2012-03-23 21:53:56 +00:00
s r c / p l a t f o r m / C o c o a K e y c o d e M a p . h
2012-09-02 18:57:49 +00:00
s r c / e d i t o r / C 4 E d i t o r W i n d o w C o n t r o l l e r . h
s r c / e d i t o r / C 4 E d i t o r W i n d o w C o n t r o l l e r . m m
2009-05-29 21:05:50 +00:00
)
endif ( )
2012-03-14 22:28:44 +00:00
if ( WITH_AUTOMATIC_UPDATE )
2015-12-15 19:18:25 +00:00
list ( APPEND OC_GUI_SOURCES
2012-03-14 22:28:44 +00:00
s r c / g u i / C 4 U p d a t e D l g . c p p
s r c / g u i / C 4 U p d a t e D l g . h
2009-05-29 21:05:50 +00:00
)
endif ( )
2009-08-10 15:59:18 +00:00
2009-08-29 21:12:31 +00:00
if ( PROJECT_FOLDERS )
2011-09-21 20:25:33 +00:00
source_group ( "Core" src/.* )
source_group ( "Platform abstraction" src/platform/.* )
source_group ( "Utility" src/lib/.* )
source_group ( "C4Group" src/c4group/.* )
2012-04-27 17:04:43 +00:00
source_group ( "Graphics" src/graphics/.* )
2009-08-29 21:12:31 +00:00
source_group ( "GUI" src/gui/.* )
source_group ( "Network" src/network/.* )
2012-04-27 17:04:43 +00:00
source_group ( "Object" src/object/.* )
source_group ( "Landscape" src/landscape/.* )
source_group ( "Player" src/player/.* )
source_group ( "Script" REGULAR_EXPRESSION .*script/.* )
2009-08-29 21:12:31 +00:00
source_group ( "Config" src/config/.* )
source_group ( "Control" src/control/.* )
source_group ( "Editing" src/editor/.* )
2012-02-12 18:41:48 +00:00
source_group ( "Mape" src/mape/.* )
2009-08-29 21:12:31 +00:00
endif ( )
2009-05-29 20:53:15 +00:00
include_directories (
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R }
2009-08-10 15:59:18 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / c 4 g r o u p
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / c o n f i g
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / c o n t r o l
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / e d i t o r
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / g a m e
2012-04-27 17:04:43 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / g a m e s c r i p t
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / g r a p h i c s
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / g u i
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / l a n d s c a p e
2014-10-11 21:13:10 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / l a n d s c a p e / f o w
2012-04-27 17:04:43 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / l i b
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / n e t w o r k
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / o b j e c t
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / p l a t f o r m
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / p l a y e r
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s
2009-08-10 15:59:18 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / s c r i p t
2015-02-07 16:39:15 +00:00
)
# Mark thirdparty as system headers so we don't get warnings from them
include_directories ( SYSTEM
2011-01-25 20:28:44 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t h i r d p a r t y
2009-05-29 20:53:15 +00:00
)
2009-10-20 03:39:24 +00:00
############################################################################
# Generate output files
############################################################################
add_definitions ( -DHAVE_CONFIG_H )
2011-01-25 17:56:40 +00:00
2013-01-28 15:48:04 +00:00
add_library ( libmisc
2015-12-28 22:00:06 +00:00
s r c / C 4 I n c l u d e . c p p
2013-01-28 15:48:04 +00:00
s r c / c 4 g r o u p / C 4 G r o u p . c p p
s r c / c 4 g r o u p / C 4 G r o u p . h
s r c / c 4 g r o u p / C 4 U p d a t e . c p p
s r c / c 4 g r o u p / C 4 U p d a t e . h
s r c / c 4 g r o u p / C S t d F i l e . c p p
s r c / c 4 g r o u p / C S t d F i l e . h
s r c / l i b / C 4 I n p u t V a l i d a t i o n . c p p
s r c / l i b / C 4 I n p u t V a l i d a t i o n . h
2015-12-28 22:00:06 +00:00
s r c / l i b / C 4 M a r k u p . c p p
s r c / l i b / C 4 M a r k u p . h
s r c / l i b / C 4 S i m p l e L o g . c p p
2013-01-28 15:48:04 +00:00
s r c / l i b / S H A 1 . h
s r c / l i b / S t a n d a r d . c p p
s r c / l i b / S t a n d a r d . h
s r c / l i b / S t d B u f . c p p
s r c / l i b / S t d B u f . h
s r c / l i b / S t d C o m p i l e r . c p p
s r c / l i b / S t d C o m p i l e r . h
s r c / l i b / S t d R e s S t r 2 . c p p
s r c / n e t w o r k / C 4 N e t I O . c p p
s r c / n e t w o r k / C 4 N e t I O . h
s r c / p l a t f o r m / S t d F i l e . c p p
s r c / p l a t f o r m / S t d F i l e . h
s r c / p l a t f o r m / S t d R e g i s t r y . c p p
s r c / p l a t f o r m / S t d R e g i s t r y . h
s r c / p l a t f o r m / S t d S c h e d u l e r . c p p
2014-01-12 20:05:35 +00:00
s r c / p l a t f o r m / S t d S c h e d u l e r W i n 3 2 . c p p
s r c / p l a t f o r m / S t d S c h e d u l e r P o l l . c p p
2013-01-28 15:48:04 +00:00
s r c / p l a t f o r m / S t d S c h e d u l e r . h
2013-12-07 21:05:56 +00:00
s r c / p l a t f o r m / C 4 T i m e M i l l i s e c o n d s . c p p
2015-12-28 21:00:06 +00:00
s r c / p l a t f o r m / C 4 T i m e M i l l i s e c o n d s . h
2013-01-28 15:48:04 +00:00
s r c / z l i b / g z i o . c
s r c / z l i b / g z i o . h
s r c / z l i b / z u t i l . h
)
target_link_libraries ( libmisc ${ ZLIB_LIBRARIES } )
2015-09-04 14:43:29 +00:00
if ( WIN32 )
target_link_libraries ( libmisc winmm )
endif ( )
2015-12-25 00:57:12 +00:00
if ( HAVE_PTHREAD )
target_link_libraries ( libmisc pthread )
endif ( )
if ( UNIX AND NOT APPLE )
target_link_libraries ( libmisc rt )
endif ( )
2013-01-28 15:48:04 +00:00
add_library ( libc4script
2015-12-28 22:00:06 +00:00
s r c / C 4 I n c l u d e . c p p
2013-01-28 15:48:04 +00:00
s r c / c 4 g r o u p / C 4 G r o u p S e t . c p p
s r c / c 4 g r o u p / C 4 G r o u p S e t . h
s r c / c 4 g r o u p / C 4 C o m p o n e n t H o s t . c p p
s r c / c 4 g r o u p / C 4 C o m p o n e n t H o s t . h
s r c / c 4 g r o u p / C 4 L a n g S t r i n g T a b l e . c p p
s r c / c 4 g r o u p / C 4 L a n g S t r i n g T a b l e . h
s r c / l i b / C 4 R e a l . c p p
s r c / l i b / C 4 R e a l . h
s r c / l i b / C 4 R a n d o m . c p p
s r c / l i b / C 4 R a n d o m . h
s r c / s c r i p t / C 4 A u l . c p p
s r c / s c r i p t / C 4 A u l D e f F u n c . h
s r c / s c r i p t / C 4 A u l E x e c . c p p
s r c / s c r i p t / C 4 A u l E x e c . h
s r c / s c r i p t / C 4 A u l F u n c . c p p
s r c / s c r i p t / C 4 A u l F u n c . h
s r c / s c r i p t / C 4 A u l . h
s r c / s c r i p t / C 4 A u l L i n k . c p p
s r c / s c r i p t / C 4 A u l P a r s e . c p p
s r c / s c r i p t / C 4 P r o p L i s t . c p p
s r c / s c r i p t / C 4 P r o p L i s t . h
s r c / s c r i p t / C 4 S c r i p t . c p p
s r c / s c r i p t / C 4 S c r i p t H o s t . c p p
s r c / s c r i p t / C 4 S c r i p t H o s t . h
s r c / s c r i p t / C 4 S t r i n g T a b l e . c p p
s r c / s c r i p t / C 4 S t r i n g T a b l e . h
s r c / s c r i p t / C 4 V a l u e A r r a y . c p p
s r c / s c r i p t / C 4 V a l u e A r r a y . h
s r c / s c r i p t / C 4 V a l u e . c p p
s r c / s c r i p t / C 4 V a l u e . h
s r c / s c r i p t / C 4 V a l u e M a p . c p p
s r c / s c r i p t / C 4 V a l u e M a p . h
)
2015-12-13 13:23:52 +00:00
target_link_libraries ( libc4script libmisc )
2011-06-03 19:47:12 +00:00
add_executable ( c4script
2012-03-04 20:23:11 +00:00
i n c l u d e / c 4 s c r i p t / c 4 s c r i p t . h
2012-04-27 17:04:43 +00:00
s r c / s c r i p t / C 4 S c r i p t M a i n . c p p
2012-03-04 20:23:11 +00:00
s r c / s c r i p t / C 4 S c r i p t S t a n d a l o n e . c p p
2015-09-04 11:20:55 +00:00
s r c / s c r i p t / C 4 S c r i p t S t a n d a l o n e S t u b s . c p p
2011-03-07 19:53:13 +00:00
)
2015-12-25 00:57:12 +00:00
target_link_libraries ( c4script
l i b c 4 s c r i p t
l i b m i s c
)
add_executable ( openclonk WIN32 MACOSX_BUNDLE
$ { O C _ S Y S T E M _ S O U R C E S }
$ { O C _ G U I _ S O U R C E S }
$ { O C _ C L O N K _ S O U R C E S }
)
2013-01-28 12:44:01 +00:00
target_link_libraries ( openclonk
2009-10-20 03:39:24 +00:00
$ { F R E E T Y P E _ L I B R A R I E S }
$ { P N G _ L I B R A R I E S }
$ { J P E G _ L I B R A R I E S }
2014-05-28 01:54:58 +00:00
$ { E X E C I N F O _ L I B R A R Y }
2015-12-25 00:57:12 +00:00
$ { S D L _ L I B R A R Y }
$ { A u d i o _ L I B R A R I E S }
$ { G E T O P T _ L I B R A R I E S }
$ { G L E W _ L I B R A R I E S }
$ { O P E N G L _ L I B R A R I E S }
$ { T i n y X M L _ L I B R A R I E S }
$ { X 1 1 _ L I B R A R I E S }
$ { X R A N D R _ L I B R A R I E S }
$ { D B G H E L P _ L I B R A R I E S }
$ { U P N P _ L I B R A R I E S }
2013-01-28 15:48:04 +00:00
l i b c 4 s c r i p t
l i b m i s c
2009-10-20 03:39:24 +00:00
)
2015-12-25 00:57:12 +00:00
if ( USE_GTK )
target_link_libraries ( openclonk ${ GTK3_LIBRARIES } )
endif ( )
if ( USE_COCOA )
target_link_libraries ( openclonk "-framework Cocoa -framework AppKit -framework Quartz -framework OpenAL -framework AudioToolbox" )
endif ( )
add_executable ( openclonk-server
$ { O C _ S Y S T E M _ S O U R C E S }
$ { O C _ C L O N K _ S O U R C E S }
s r c / p l a t f o r m / C 4 A p p T . c p p
s r c / p l a t f o r m / C 4 S t d I n P r o c . c p p
s r c / p l a t f o r m / C 4 S t d I n P r o c . h
)
set_property ( TARGET openclonk-server APPEND PROPERTY COMPILE_DEFINITIONS "USE_CONSOLE" )
2012-11-16 16:30:52 +00:00
2015-12-15 19:18:25 +00:00
target_link_libraries ( openclonk-server
$ { P N G _ L I B R A R I E S }
$ { J P E G _ L I B R A R I E S }
$ { E X E C I N F O _ L I B R A R Y }
2015-12-25 00:57:12 +00:00
$ { R E A D L I N E _ L I B R A R I E S }
$ { A u d i o _ L I B R A R I E S }
$ { G E T O P T _ L I B R A R I E S }
$ { G T K 3 _ g l i b _ L I B R A R I E S }
$ { T i n y X M L _ L I B R A R I E S }
$ { D B G H E L P _ L I B R A R I E S }
$ { U P N P _ L I B R A R I E S }
2015-12-15 19:18:25 +00:00
l i b c 4 s c r i p t
l i b m i s c
)
2015-12-25 00:57:12 +00:00
if ( USE_COCOA )
target_link_libraries ( openclonk-server "-framework Cocoa" )
2012-11-16 16:30:52 +00:00
endif ( )
2013-01-14 00:38:03 +00:00
2015-12-25 00:57:12 +00:00
if ( GTK3_FOUND AND GTK3_gtksourceview_FOUND )
add_executable ( mape ${ MAPE_BASE_SOURCES } ${ MAPE_SOURCES } )
2016-01-18 00:12:11 +00:00
target_compile_options ( mape PRIVATE ${ GTK3_COMPILE_DEFINITIONS } ${ GTK3_gtksourceview_COMPILE_DEFINITIONS } )
2015-12-25 00:57:12 +00:00
target_include_directories ( mape PRIVATE ${ GTK3_INCLUDE_DIRS } ${ GTK3_gtksourceview_INCLUDE_DIRS } )
2012-02-12 18:41:48 +00:00
target_link_libraries ( mape
2015-12-25 00:57:12 +00:00
$ { G T K 3 _ L I B R A R I E S }
$ { G T K 3 _ g t k s o u r c e v i e w _ L I B R A R I E S }
2013-01-28 15:48:04 +00:00
l i b c 4 s c r i p t
l i b m i s c
2012-02-12 18:41:48 +00:00
)
2015-12-25 00:57:12 +00:00
# Suppress the console window for mape even though only a main() and not
# a WinMain() entry point is provided.
if ( MINGW )
set_target_properties ( mape PROPERTIES LINK_FLAGS -mwindows )
endif ( )
2012-02-12 18:41:48 +00:00
endif ( )
2013-01-14 00:38:03 +00:00
2015-12-25 00:57:12 +00:00
add_executable ( c4group
s r c / c 4 g r o u p / C 4 G r o u p M a i n . c p p
2009-10-20 03:39:24 +00:00
)
2013-01-28 15:48:04 +00:00
2015-12-25 00:57:12 +00:00
target_link_libraries ( c4group
2013-01-28 15:48:04 +00:00
l i b m i s c
2011-03-07 19:53:13 +00:00
)
2015-12-25 00:57:12 +00:00
if ( WIN32 )
target_link_libraries ( openclonk ws2_32 )
target_link_libraries ( openclonk-server ws2_32 )
target_link_libraries ( c4group ws2_32 )
target_link_libraries ( c4script ws2_32 )
2015-09-19 17:20:25 +00:00
endif ( )
2015-12-25 00:57:12 +00:00
2015-12-29 02:03:22 +00:00
set_property ( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $< $<CONFIG:Debug > :_DEBUG> )
set_property ( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $< $<NOT:$<CONFIG:Debug > >:NDEBUG> )
2009-10-20 03:39:24 +00:00
2010-08-01 13:49:51 +00:00
# This expands some variables in Info.plist as a side-effect. XCode might then
# expand a second time, using the same syntax. Try not to get confused by this!
2015-03-15 13:49:59 +00:00
if ( APPLE AND NOT CMAKE_GENERATOR STREQUAL "Xcode" )
# If cross-compiling for OS X, EXECUTABLE_NAME needs to be set so it's
# expanded inside the Info.plist file. Otherwise you cannot rename the app
# bundle later.
# XXX: Make sure to fix this once we have more than one app bundle. No, I
# have no idea how.
set ( EXECUTABLE_NAME openclonk )
endif ( )
2013-01-28 12:44:01 +00:00
set_target_properties ( openclonk PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/src/res/Info.plist" )
2010-08-01 13:49:51 +00:00
2011-11-10 01:01:21 +00:00
if ( MSVC )
# set target output filenames to a per-configuration value
function ( oc_set_target_names target_name )
foreach ( CONFIG ${ CMAKE_CONFIGURATION_TYPES } )
string ( TOUPPER "${CONFIG}" CONFIG_UPPER )
string ( TOLOWER "${CONFIG}" CONFIG_LOWER )
set_target_properties ( ${ target_name } PROPERTIES RUNTIME_OUTPUT_DIRECTORY_ ${ CONFIG_UPPER } "${CMAKE_CURRENT_BINARY_DIR}" )
if ( NOT "${CONFIG}" STREQUAL "RelWithDebInfo" )
set_target_properties ( ${ target_name } PROPERTIES RUNTIME_OUTPUT_NAME_ ${ CONFIG_UPPER } "${target_name}-${CONFIG_LOWER}" )
endif ( )
endforeach ( )
endfunction ( )
2013-01-28 12:44:01 +00:00
oc_set_target_names ( openclonk )
2015-12-15 19:18:25 +00:00
oc_set_target_names ( openclonk-server )
2011-11-10 01:01:21 +00:00
oc_set_target_names ( c4group )
oc_set_target_names ( c4script )
2013-11-10 18:09:32 +00:00
# cmake does not support embedding arbitrary manifests,
# so we add it to the resource file ourselves and tell
# MSVC not to create its own.
set_property ( TARGET openclonk APPEND PROPERTY LINK_FLAGS "/MANIFEST:NO" )
2011-11-10 01:01:21 +00:00
endif ( )
2009-10-20 03:39:24 +00:00
############################################################################
2015-12-28 22:00:06 +00:00
# Precompiled header support for MSVC
2009-10-20 03:39:24 +00:00
############################################################################
if ( HAVE_PRECOMPILED_HEADERS )
2009-10-20 04:05:49 +00:00
if ( MSVC_VERSION )
2013-01-28 12:44:01 +00:00
get_property ( OC_SOURCES TARGET openclonk PROPERTY SOURCES )
2009-10-20 04:05:49 +00:00
foreach ( FILE ${ OC_SOURCES } )
get_filename_component ( FILE_EXT ${ FILE } EXT )
2010-01-04 02:15:50 +00:00
get_filename_component ( FILE_NAME_WE ${ FILE } NAME_WE )
2011-01-25 20:28:44 +00:00
if ( FILE_EXT STREQUAL ".cpp" )
2009-10-20 04:05:49 +00:00
# This check is necessary since gzio.c gets compiled as C
# code, which can't use C++ PCH.
set_property ( SOURCE ${ FILE } PROPERTY COMPILE_FLAGS /YuC4Include.h )
endif ( )
endforeach ( )
set_property ( SOURCE src/C4Include.cpp PROPERTY COMPILE_FLAGS /YcC4Include.h )
endif ( )
2009-10-20 03:39:24 +00:00
endif ( )
2012-02-14 15:44:29 +00:00
############################################################################
# Some Xcode/OSX specific settings involving building with clang, precompiled headers...
############################################################################
if ( APPLE )
2014-01-27 07:08:27 +00:00
# for good measure - seems to be part of default OSX installation
# linking with static freetype library requires it
2015-01-23 16:11:23 +00:00
find_package ( "BZip2" REQUIRED )
target_link_libraries ( openclonk ${ BZIP2_LIBRARIES } )
2014-01-27 07:08:27 +00:00
2014-01-29 19:37:24 +00:00
if ( CMAKE_GENERATOR STREQUAL Xcode )
2014-01-27 07:08:27 +00:00
set ( CMAKE_XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES )
set_target_properties ( openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES )
2015-12-28 21:14:25 +00:00
set_target_properties ( openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++14 objective-c++14" )
2014-01-27 07:08:27 +00:00
set_target_properties ( openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h" )
set_target_properties ( c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES )
2015-12-28 21:14:25 +00:00
set_target_properties ( c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++14 objective-c++14" )
2014-01-27 07:08:27 +00:00
set_target_properties ( c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h" )
set_target_properties ( libmisc PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES )
2015-12-28 21:14:25 +00:00
set_target_properties ( libmisc PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++14 objective-c++14" )
2014-01-27 07:08:27 +00:00
set_target_properties ( libmisc PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h" )
set_target_properties ( openclonk PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES )
2014-01-31 07:16:32 +00:00
2012-02-14 15:44:29 +00:00
set ( CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0" )
2015-12-28 20:42:49 +00:00
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++14" )
2012-02-14 15:44:29 +00:00
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
endif ( )
2015-01-24 10:20:03 +00:00
add_custom_command ( TARGET openclonk
P O S T _ B U I L D C O M M A N D " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t o o l s / o s x _ b u n d l e _ l i b s "
" $ < T A R G E T _ F I L E : o p e n c l o n k > "
)
2011-03-12 21:01:23 +00:00
endif ( )
2009-10-20 03:39:24 +00:00
############################################################################
2015-12-25 00:57:12 +00:00
# Miscellaneous
2009-10-20 03:39:24 +00:00
############################################################################
2013-01-28 15:48:04 +00:00
add_subdirectory ( tests EXCLUDE_FROM_ALL )
2009-09-20 20:03:44 +00:00
2009-05-29 20:53:15 +00:00
configure_file ( ${ CMAKE_CURRENT_SOURCE_DIR } /config.h.cmake ${ CMAKE_CURRENT_BINARY_DIR } /config.h )
2009-07-11 01:14:57 +00:00
2012-05-01 15:24:07 +00:00
# CMake support for MSVC 2010 is broken. Change the .sln file to avoid
# millions of "reload X project?" dialog boxes.
# For best results, also change CMake's ReloadProjects macro to only
# call StopBuild().
if ( MSVC_VERSION EQUAL 1600 )
file ( APPEND "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}.sln" "\n# reload me\n" )
endif ( )
2015-12-29 12:58:15 +00:00
# For MSVC 2015, add a Solution Items folder to the solution that contains
# a reference to the debugger visualization file.
if ( CMAKE_GENERATOR MATCHES "^Visual Studio 14 2015" )
file ( RELATIVE_PATH NATVIS_SOURCE_PATH "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/tools/openclonk.vs14.natvis" )
file ( TO_NATIVE_PATH "${NATVIS_SOURCE_PATH}" NATVIS_SOURCE_PATH )
# We need to set the GUID of this to the cache, so CMake uses it for
# dependency resolution. As a special bonus, this makes it so the
# project has an actual version 4 GUID instead of the CMake-generated
# almost-version-3 (actually just a bunch of MD5 hex output with dashes).
set ( VS_SolutionItems_GUID "9570CE35-9E26-4091-AF06-6B0C7F9D8F69" )
set ( "Solution Items_GUID_CMAKE" "${VS_SolutionItems_GUID}" CACHE INTERNAL "Stored GUID" )
# Unfortunately CMake doesn't allow us to add solution items directly, so
# instead we abuse that it doesn't validate the TYPE parameter and instead
# passes it straight through into the .sln file.
include_external_msproject (
" S o l u t i o n I t e m s " " S o l u t i o n I t e m s "
T Y P E " 2 1 5 0 E 3 3 3 - 8 F D C - 4 2 A 3 - 9 4 7 4 - 1 A 3 9 5 6 D 4 6 D E 8 } \ " ) = \ " S o l u t i o n I t e m s \ " , \ " S o l u t i o n I t e m s \ " , \ " { $ { V S _ S o l u t i o n I t e m s _ G U I D } } \ " \ n ProjectSection ( SolutionItems ) = p r e P r o j e c t \ n $ { N A T V I S _ S O U R C E _ P A T H } = $ { N A T V I S _ S O U R C E _ P A T H } \ n E n d P r o j e c t S e c t i o n \ n #"
)
endif ( )
2014-03-25 18:11:22 +00:00
############################################################################
# Precompiled header support, gcc part (it needs the cxx flags)
############################################################################
if ( CMAKE_COMPILER_IS_GNUCXX )
include ( GccPchSupport )
2014-04-02 18:52:31 +00:00
option ( USE_GCC_PCH "Use GCC precompiled headers" OFF )
2014-03-25 18:11:22 +00:00
endif ( )
if ( USE_GCC_PCH )
add_precompiled_header ( libmisc src/C4Include.h )
add_precompiled_header ( libc4script src/C4Include.h )
add_precompiled_header ( openclonk src/C4Include.h )
2015-12-15 19:18:25 +00:00
add_precompiled_header ( openclonk-server src/C4Include.h )
2014-03-25 18:11:22 +00:00
endif ( )
2010-08-03 15:59:36 +00:00
############################################################################
# installation
############################################################################
2013-03-09 13:58:30 +00:00
# Don't allow installation for WITH_AUTOMATIC_UPDATE because otherwise
2012-02-03 22:43:18 +00:00
# the installed binary wouldn't find its game data in the system data path.
IF ( WITH_AUTOMATIC_UPDATE )
INSTALL ( CODE "MESSAGE(SEND_ERROR \" Installation is only supported for WITH_AUTOMATIC_UPDATE disabled\ ")" )
ENDIF ( )
2009-05-29 20:53:15 +00:00
2012-05-03 19:47:14 +00:00
# hack to build the data on install, see
# http://public.kitware.com/Bug/view.php?id=8438
add_custom_target ( data )
install (
C O D E
" execute_process (
C O M M A N D $ { C M A K E _ C O M M A N D } - - b u i l d $ { C M A K E _ B I N A R Y _ D I R } - - t a r g e t d a t a
2013-03-09 16:45:27 +00:00
) "
)
2012-05-03 19:47:14 +00:00
2014-01-29 12:14:13 +00:00
if ( NOT APPLE )
install (
F I L E S $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c 3 2 . p n g
D E S T I N A T I O N s h a r e / i c o n s / h i c o l o r / 3 2 x 3 2 / a p p s
R E N A M E o p e n c l o n k . p n g
)
install (
F I L E S $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c 6 4 . p n g
D E S T I N A T I O N s h a r e / i c o n s / h i c o l o r / 6 4 x 6 4 / a p p s
R E N A M E o p e n c l o n k . p n g
)
install (
F I L E S $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c 1 2 8 . p n g
D E S T I N A T I O N s h a r e / i c o n s / h i c o l o r / 1 2 8 x 1 2 8 / a p p s
R E N A M E o p e n c l o n k . p n g
)
install (
F I L E S $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c 2 5 6 . p n g
D E S T I N A T I O N s h a r e / i c o n s / h i c o l o r / 2 5 6 x 2 5 6 / a p p s
R E N A M E o p e n c l o n k . p n g
2012-05-03 19:47:14 +00:00
)
2013-03-09 16:45:27 +00:00
install (
2014-01-29 12:14:13 +00:00
F I L E S $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / r e s / o c 5 1 2 . p n g
D E S T I N A T I O N s h a r e / i c o n s / h i c o l o r / 5 1 2 x 5 1 2 / a p p s
R E N A M E o p e n c l o n k . p n g
2012-05-03 19:47:14 +00:00
)
2013-03-09 16:45:27 +00:00
endif ( )
2010-08-03 15:59:36 +00:00
2015-12-25 00:57:12 +00:00
# Export native tools for later use in cross-compile builds
IF ( NOT CMAKE_CROSSCOMPILING )
EXPORT ( TARGETS c4group FILE ${ CMAKE_BINARY_DIR } /NativeToolsExport.cmake NAMESPACE native- )
ENDIF ( )
# When cross-compiling, import c4group from a native build
IF ( CMAKE_CROSSCOMPILING )
SET ( IMPORT_NATIVE_TOOLS "IMPORT_NATIVE_TOOLS-NOTFOUND" CACHE FILEPATH "Export file from a native build" )
INCLUDE ( ${ IMPORT_NATIVE_TOOLS } )
SET ( native_c4group native-c4group )
ELSE ( )
SET ( native_c4group c4group )
ENDIF ( )
2014-02-07 14:52:13 +00:00
# NOTE: The scripts that does the autobuilds and ultimately the automated
# releases as well do keep their own list of group files around currently.
# So if you change anything here, change it in the release scripts as well.
# See openclonk-release-scripts.git/groupcontent.py
2011-10-11 16:59:58 +00:00
set ( OC_C4GROUPS
G r a p h i c s . o c g
M a t e r i a l . o c g
M u s i c . o c g
S o u n d . o c g
S y s t e m . o c g
O b j e c t s . o c d
2014-05-12 07:26:24 +00:00
D e c o r a t i o n . o c d
2012-10-10 19:28:25 +00:00
A r e n a . o c f
P a r k o u r . o c f
2015-12-12 17:04:42 +00:00
D e f e n s e . o c f
2013-10-05 15:39:14 +00:00
M i s s i o n s . o c f
2015-09-13 13:32:35 +00:00
T u t o r i a l s . o c f
2013-10-05 09:58:43 +00:00
W o r l d s . o c f
2011-10-11 16:59:58 +00:00
)
2011-09-20 17:43:22 +00:00
foreach ( group ${ OC_C4GROUPS } )
2011-10-09 16:09:48 +00:00
if ( APPLE )
2014-01-27 07:08:27 +00:00
if ( CMAKE_GENERATOR STREQUAL Xcode )
add_custom_command ( TARGET openclonk
2015-01-23 18:22:04 +00:00
P O S T _ B U I L D C O M M A N D " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t o o l s / o s x _ p a c k _ g a m e d a t a . s h "
2015-01-23 17:25:02 +00:00
" $ < T A R G E T _ F I L E : $ { n a t i v e _ c 4 g r o u p } > "
2014-01-27 07:08:27 +00:00
" $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / p l a n e t / $ { g r o u p } "
# leave out third parameter here so the script can figure out Xcode-ish paths as usual
2015-01-23 17:25:02 +00:00
D E P E N D S " $ { n a t i v e _ c 4 g r o u p } "
2011-10-09 16:09:48 +00:00
)
2014-01-27 07:08:27 +00:00
else ( )
add_custom_command ( TARGET openclonk
2015-01-23 18:22:04 +00:00
P O S T _ B U I L D C O M M A N D " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t o o l s / o s x _ p a c k _ g a m e d a t a . s h "
2015-01-23 17:25:02 +00:00
" $ < T A R G E T _ F I L E : $ { n a t i v e _ c 4 g r o u p } > "
2014-01-27 07:08:27 +00:00
" $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / p l a n e t / $ { g r o u p } "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / o p e n c l o n k . a p p / C o n t e n t s / R e s o u r c e s "
2015-01-23 17:25:02 +00:00
D E P E N D S " $ { n a t i v e _ c 4 g r o u p } "
2011-10-09 16:09:48 +00:00
)
2014-01-27 07:08:27 +00:00
endif ( )
2011-10-09 16:09:48 +00:00
else ( )
2012-05-03 19:47:14 +00:00
add_custom_command (
O U T P U T $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / $ { g r o u p }
2015-01-23 17:25:02 +00:00
C O M M A N D " $ { n a t i v e _ c 4 g r o u p } " A R G S " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / p l a n e t / $ { g r o u p } " - t " $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / $ { g r o u p } "
2012-05-03 19:47:14 +00:00
M A I N _ D E P E N D E N C Y $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / p l a n e t / $ { g r o u p }
2015-01-23 17:25:02 +00:00
D E P E N D S " $ { n a t i v e _ c 4 g r o u p } "
2012-05-03 19:47:14 +00:00
V E R B A T I M
2014-01-27 07:08:27 +00:00
)
2012-10-21 13:03:24 +00:00
install ( FILES ${ CMAKE_CURRENT_BINARY_DIR } / ${ group } DESTINATION share/games/openclonk )
2011-10-09 16:09:48 +00:00
endif ( )
2009-07-12 16:46:54 +00:00
endforeach ( )
2014-01-29 12:14:13 +00:00
2012-05-03 19:47:14 +00:00
if ( NOT APPLE )
add_custom_target ( groups DEPENDS ${ OC_C4GROUPS } )
add_dependencies ( data groups )
2014-01-29 12:14:13 +00:00
# Install new files
install ( FILES ${ CMAKE_CURRENT_SOURCE_DIR } /openclonk.desktop DESTINATION share/applications )
2014-12-26 20:29:39 +00:00
# Update the MIME cache -- this makes the clonk:// protocol handler actually work
install ( CODE "execute_process(COMMAND update-desktop-database)" )
2011-10-12 18:59:28 +00:00
2014-01-29 12:14:13 +00:00
# Install binaries
2014-05-27 00:53:59 +00:00
install ( TARGETS openclonk DESTINATION games )
install ( TARGETS c4group DESTINATION bin )
2014-01-29 12:14:13 +00:00
else ( )
install ( TARGETS openclonk
B U N D L E D E S T I N A T I O N .
)
install ( TARGETS c4group c4script
R U N T I M E D E S T I N A T I O N .
)
endif ( )
2011-10-12 18:59:28 +00:00
############################################################################
# setup_openclonk.exe
############################################################################
2011-09-21 20:25:33 +00:00
find_program ( MAKENSIS makensis PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS] )
2011-09-20 17:43:22 +00:00
add_custom_command (
2011-09-21 20:25:33 +00:00
O U T P U T s e t u p _ o p e n c l o n k . e x e
2015-09-04 19:14:21 +00:00
C O M M A N D $ { M A K E N S I S } - N O C D - D S R C D I R = $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } - D P R O G R A M F I L E S = $ P R O G R A M F I L E S " - D P R O D U C T _ N A M E = $ { C 4 E N G I N E N A M E } " " - D P R O D U C T _ C O M P A N Y = $ { C 4 P R O J E C T } " " - D C L O N K = $ < T A R G E T _ F I L E _ D I R : o p e n c l o n k > \ \ $ < T A R G E T _ F I L E _ N A M E : o p e n c l o n k > " " - D C 4 G R O U P = $ < T A R G E T _ F I L E _ D I R : c 4 g r o u p > \ \ $ < T A R G E T _ F I L E _ N A M E : c 4 g r o u p > " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t o o l s / i n s t a l l / o c . n s i " - X O u t F i l e s e t u p _ o p e n c l o n k . e x e "
2011-11-05 22:07:11 +00:00
M A I N _ D E P E N D E N C Y
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t o o l s / i n s t a l l / o c . n s i
D E P E N D S
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t o o l s / i n s t a l l / h e a d e r . b m p
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t o o l s / i n s t a l l / i n s t . i c o
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t o o l s / i n s t a l l / u n i n s t . i c o
2013-01-28 12:44:01 +00:00
$ { O C _ C 4 G R O U P S } o p e n c l o n k c 4 g r o u p
2011-09-21 20:25:33 +00:00
V E R B A T I M
2011-09-20 17:43:22 +00:00
)
2011-09-21 20:25:33 +00:00
add_custom_target ( setup
2013-03-09 16:45:27 +00:00
D E P E N D S s e t u p _ o p e n c l o n k . e x e g r o u p s
2011-09-21 20:25:33 +00:00
)
2011-09-20 17:43:22 +00:00
2010-08-03 15:59:36 +00:00
############################################################################
# CPack support
############################################################################
2010-12-30 00:21:07 +00:00
set ( CPACK_PACKAGE_NAME "openclonk" )
2010-08-03 15:59:36 +00:00
set ( CPACK_PACKAGE_VENDOR "${C4PROJECT_URL}" )
2010-12-30 00:21:07 +00:00
set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenClonk - A game mix out of tactic, strategy and Jump & Run" )
2014-12-12 20:57:52 +00:00
set ( CPACK_PACKAGE_VERSION "${C4XVER1}.${C4XVER2}" )
2010-08-03 15:59:36 +00:00
set ( CPACK_PACKAGE_VERSION_MAJOR "${C4XVER1}" )
set ( CPACK_PACKAGE_VERSION_MINOR "${C4XVER2}" )
2014-12-12 20:57:52 +00:00
set ( CPACK_PACKAGE_FILE_NAME "openclonk-${C4XVER1}.${C4XVER2}" )
set ( CPACK_SOURCE_PACKAGE_FILE_NAME "openclonk-src-${C4XVER1}.${C4XVER2}" )
2010-08-03 15:59:36 +00:00
set ( CPACK_SOURCE_GENERATOR "TGZ;ZIP" )
2010-12-30 00:21:07 +00:00
include ( CPack )