hedgewars/CMakeLists.txt
author nemo
Sat, 13 Nov 2010 15:25:38 -0500
branch0.9.14
changeset 4304 a2041fbe5333
parent 4158 08f4627ad2b3
child 4357 a1fcfc341a52
permissions -rw-r--r--
lighten tex to look more sandy
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2420
b7390a3040f8 ultramegafix
koda
parents: 2413
diff changeset
     1
find_package(SDL)
b7390a3040f8 ultramegafix
koda
parents: 2413
diff changeset
     2
find_package(SDL_image)
b7390a3040f8 ultramegafix
koda
parents: 2413
diff changeset
     3
find_package(SDL_net)
b7390a3040f8 ultramegafix
koda
parents: 2413
diff changeset
     4
find_package(SDL_ttf)
2515
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2494
diff changeset
     5
find_package(SDL_mixer)
2924
908851e59958 Engine:
smxx
parents: 2822
diff changeset
     6
find_package(Lua)
2401
2a694ea2a437 fixes & co.
koda
parents: 2326
diff changeset
     7
3067
smxx
parents: 2990
diff changeset
     8
configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
smxx
parents: 2990
diff changeset
     9
2672
0f1403bf267a check for sdl_image and sdl_mixer versions
koda
parents: 2671
diff changeset
    10
#find which version of SDL_image and SDL_mixer we have (for IMG_Init and Mix_Init)
0f1403bf267a check for sdl_image and sdl_mixer versions
koda
parents: 2671
diff changeset
    11
#if the headers are not installed, the newer apis won't be activated
2673
2c847bcc951d rewritten find_file part
koda
parents: 2672
diff changeset
    12
find_file(sdlmixer_h SDL_mixer.h ${SDLMIXER_INCLUDE_DIR})
2c847bcc951d rewritten find_file part
koda
parents: 2672
diff changeset
    13
if(sdlmixer_h)
3495
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    14
	file(STRINGS ${sdlmixer_h} sdlmixer_version_tmp REGEX "SDL_MIXER_PATCHLEVEL[\t' ']+[0-9]+")
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    15
	string(REGEX MATCH ".([0-9]+)" sdlmixer_version "${sdlmixer_version_tmp}")
2672
0f1403bf267a check for sdl_image and sdl_mixer versions
koda
parents: 2671
diff changeset
    16
3495
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    17
	if(sdlmixer_version GREATER 9)
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    18
		message(STATUS "Enabling enhanced SDL_Mixer calls")
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    19
		set(pascal_compiler_flags_cmn "-dSDL_MIXER_NEWER" ${pascal_compiler_flags_cmn})
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    20
	endif()
2673
2c847bcc951d rewritten find_file part
koda
parents: 2672
diff changeset
    21
endif()
2672
0f1403bf267a check for sdl_image and sdl_mixer versions
koda
parents: 2671
diff changeset
    22
2673
2c847bcc951d rewritten find_file part
koda
parents: 2672
diff changeset
    23
find_file(sdlimage_h SDL_image.h ${SDLIMAGE_INCLUDE_DIR})
2c847bcc951d rewritten find_file part
koda
parents: 2672
diff changeset
    24
if(sdlimage_h)
3495
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    25
	file(STRINGS ${sdlimage_h} sdlimage_version_tmp REGEX "SDL_IMAGE_PATCHLEVEL[\t' ']+[0-9]+")
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    26
	string(REGEX MATCH ".([0-9]+)" sdlimage_version "${sdlimage_version_tmp}")
2672
0f1403bf267a check for sdl_image and sdl_mixer versions
koda
parents: 2671
diff changeset
    27
3495
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    28
	if(sdlimage_version GREATER 7)
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    29
		message(STATUS "Enabling enhanced SDL_Image calls")
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    30
		set(pascal_compiler_flags_cmn "-dSDL_IMAGE_NEWER" ${pascal_compiler_flags_cmn})
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    31
	endif()
2673
2c847bcc951d rewritten find_file part
koda
parents: 2672
diff changeset
    32
endif()
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
    33
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3680
diff changeset
    34
#SOURCE AND PROGRAMS SECTION
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    35
set(fpc_tryexe fpc)
2326
0ddf641fddee rename dpr -> pas, restores ammos on two columns, minor fixes to openalbridge
koda
parents: 2251
diff changeset
    36
set(hwengine_project ${hedgewars_SOURCE_DIR}/hedgewars/hwengine.pas)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    37
2786
85f6425a4d74 Engine:
smxx
parents: 2673
diff changeset
    38
set(engine_sources
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    39
	${hwengine_project}
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    40
	SDLh.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    41
	uAI.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    42
	uAIActions.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    43
	uAIAmmoTests.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    44
	uAIMisc.pas
288
929c44745fd9 Ammo schemes and ammo stores support in engine
unc0rr
parents: 276
diff changeset
    45
	uAmmos.pas
942
b41af014d85e Stub for chat implementation
unc0rr
parents: 814
diff changeset
    46
	uChat.pas
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    47
	uCollisions.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    48
	uConsole.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    49
	uConsts.pas
357
165a040e4cfa - Fix Blow Torch and Air Attack
unc0rr
parents: 351
diff changeset
    50
	uFloat.pas
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    51
	uGame.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    52
	uGears.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    53
	uIO.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    54
	uKeys.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    55
	uLand.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    56
	uLandGraphics.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    57
	uLandObjects.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    58
	uLandTemplates.pas
1806
3c4f0886c123 More reorganization
unc0rr
parents: 1744
diff changeset
    59
	uLandTexture.pas
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    60
	uLocale.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    61
	uMisc.pas
3928
2560731c860d move all mobile-related functions in their own module, provides a structure for future mobile ports
koda
parents: 3697
diff changeset
    62
	uMobile.pas
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    63
	uRandom.pas
2786
85f6425a4d74 Engine:
smxx
parents: 2673
diff changeset
    64
	uScript.pas
3528
0ad90165fde0 disable uSHA, enable adler32
nemo
parents: 3515
diff changeset
    65
	adler32.pas
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    66
	uSound.pas
814
7fb4417b7bc1 Start implementing better statistics implementation (does nothing yet)
unc0rr
parents: 802
diff changeset
    67
	uStats.pas
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    68
	uStore.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    69
	uTeams.pas
802
ed5450a89b96 Start implementing 'visual gears' - gears, that don't need to be synchronized (clouds and flakes)
unc0rr
parents: 782
diff changeset
    70
	uVisualGears.pas
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    71
	uWorld.pas
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    72
	CCHandlers.inc
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    73
	GSHandlers.inc
3468
c7b80bdbc384 * make portals delete each other only indirectly (by setting timer to 0)
sheepluva
parents: 3387
diff changeset
    74
	VGSHandlers.inc
3387
733f4001b8b9 Break out DrawHH/DrawGear to reduce scrolling in uGears.pas, add portal graphics
nemo
parents: 3067
diff changeset
    75
	GearDrawing.inc
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    76
	HHHandlers.inc
357
165a040e4cfa - Fix Blow Torch and Air Attack
unc0rr
parents: 351
diff changeset
    77
	SinTable.inc
3680
aaf832c6fbd7 fix panning when zoomed (finally)
koda
parents: 3539
diff changeset
    78
	ArgParsers.inc
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    79
	options.inc
2924
908851e59958 Engine:
smxx
parents: 2822
diff changeset
    80
	${CMAKE_CURRENT_BINARY_DIR}/config.inc
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    81
	)
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    82
3495
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    83
if(BUILD_ENGINE_LIBRARY)
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    84
	message(STATUS "Engine will be built as library (experimental)")
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    85
	set(hwengine_project ${hedgewars_SOURCE_DIR}/hedgewars/hwLibrary.pas)
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    86
	set(engine_sources ${hwengine_project} PascalExports.pas ${engine_sources})
3515
3e8635f43972 fix cmakefiles to work with mercurial
koda
parents: 3495
diff changeset
    87
	set(pascal_compiler_flags_cmn "-dHWLIBRARY" "-k-no_order_inits" "-fPIC" ${pascal_compiler_flags_cmn})
3495
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    88
endif(BUILD_ENGINE_LIBRARY)
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    89
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    90
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    91
find_program(fpc_executable ${fpc_tryexe})
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    92
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
    93
if(fpc_executable)
4158
08f4627ad2b3 Fix freepascal version detector to ask only version from compiler rather than all help on parameters
unc0rr
parents: 3928
diff changeset
    94
	 exec_program(${fpc_executable} ARGS "-iV" OUTPUT_VARIABLE fpc_output)
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
    95
endif(fpc_executable)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    96
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
    97
set(noexecstack_flags "-k-z" "-knoexecstack")
781
4101f0f1c0b9 First steps to support out-of-source build
unc0rr
parents: 593
diff changeset
    98
file(WRITE ${EXECUTABLE_OUTPUT_PATH}/checkstack.pas "begin end.")
476
a4e975f70b60 check for noexecstack linker compatibility (MacOS linker)
displacer
parents: 433
diff changeset
    99
781
4101f0f1c0b9 First steps to support out-of-source build
unc0rr
parents: 593
diff changeset
   100
exec_program(${fpc_executable} ${EXECUTABLE_OUTPUT_PATH}
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   101
	ARGS ${noexecstack_flags} checkstack.pas
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   102
	OUTPUT_VARIABLE noout
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   103
	RETURN_VALUE testnoexecstack
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   104
	)
476
a4e975f70b60 check for noexecstack linker compatibility (MacOS linker)
displacer
parents: 433
diff changeset
   105
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   106
if(${testnoexecstack})
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   107
	set (noexecstack_flags "")
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   108
endif(${testnoexecstack})
476
a4e975f70b60 check for noexecstack linker compatibility (MacOS linker)
displacer
parents: 433
diff changeset
   109
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   110
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   111
if(APPLE)
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   112
	string(REGEX MATCH "[pP][pP][cC]+" powerpc_build "${CMAKE_OSX_ARCHITECTURES}")
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   113
	string(REGEX MATCH "[iI]386+" i386_build "${CMAKE_OSX_ARCHITECTURES}")
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   114
	string(REGEX MATCH "[xX]86_64+" x86_64_build "${CMAKE_OSX_ARCHITECTURES}")
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   115
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   116
	if(powerpc_build)
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   117
		set(powerpc_build "powerpc")
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   118
	endif()
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   119
endif(APPLE)
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   120
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   121
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   122
#PASCAL DETECTION SECTION
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   123
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" fpc_version "${fpc_output}")
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   124
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   125
if(fpc_version)
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   126
	string(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" fpc_vers_major "${fpc_version}")
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   127
	string(REGEX REPLACE "[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1" fpc_vers_minor "${fpc_version}")
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   128
	string(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" fpc_vers_patch "${fpc_version}")
2671
7e0f88013fe8 smaller patches, one missing Sky-lowres, IMG_Init and Mix_Init (might require newer libraries), updates to SDL bindings, code cleanup, new compile flags
koda
parents: 2669
diff changeset
   129
	message(STATUS "Freepascal version detected: ${fpc_vers_major}.${fpc_vers_minor}")
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   130
	math(EXPR fpc_ver "${fpc_vers_major}*10000 + ${fpc_vers_minor}*100 + ${fpc_vers_patch}")
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   131
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   132
	if(fpc_ver LESS "020200")
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   133
		message(FATAL_ERROR "Minimum required version of FreePascal is 2.2.0")
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   134
	elseif(APPLE AND x86_64_build AND fpc_ver LESS "020400")
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   135
		message(FATAL_ERROR "Minimum required version of FreePascal is 2.4.0 for building 64 bit applications!")
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   136
	endif()
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   137
else()
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   138
	message(FATAL_ERROR "No Pascal compiler found!")
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   139
endif()
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   140
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   141
set(pascal_compiler ${fpc_executable})
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2601
diff changeset
   142
set(pascal_compiler_flags ${noexecstack_flags} ${pascal_compiler_flags_cmn} ${hwengine_project})
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   143
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   144
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   145
#DEPENDECIES AND EXECUTABLES SECTION
3495
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
   146
IF(NOT APPLE OR BUILD_ENGINE_LIBRARY)
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
   147
	#here is the command for standard executables or for shared library
2609
b67624c7d61e add a x86_64 mac target
koda
parents: 2606
diff changeset
   148
	add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}"
781
4101f0f1c0b9 First steps to support out-of-source build
unc0rr
parents: 593
diff changeset
   149
		COMMAND "${pascal_compiler}"
4101f0f1c0b9 First steps to support out-of-source build
unc0rr
parents: 593
diff changeset
   150
		ARGS ${pascal_compiler_flags}
4101f0f1c0b9 First steps to support out-of-source build
unc0rr
parents: 593
diff changeset
   151
		MAIN_DEPENDENCY ${hwengine_project}
2521
fc8d26d14ed0 Fix build
unc0rr
parents: 2515
diff changeset
   152
		DEPENDS ${engine_sources}
781
4101f0f1c0b9 First steps to support out-of-source build
unc0rr
parents: 593
diff changeset
   153
		)
2203
6bd39d75e0dd -Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents: 2200
diff changeset
   154
ELSE()
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   155
	#let's build sdlmain, which is absent from the framework
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   156
	find_package(SDL REQUIRED)
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   157
2671
7e0f88013fe8 smaller patches, one missing Sky-lowres, IMG_Init and Mix_Init (might require newer libraries), updates to SDL bindings, code cleanup, new compile flags
koda
parents: 2669
diff changeset
   158
	set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   159
	include_directories(${SDL_INCLUDE_DIR})
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   160
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   161
	add_library (SDLmain STATIC SDLMain.m)
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   162
2809
b8956af350c1 mac build supports lua
koda
parents: 2804
diff changeset
   163
b8956af350c1 mac build supports lua
koda
parents: 2804
diff changeset
   164
	#these are the dependencies for building a universal binary on Mac OS X
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   165
	foreach (build_arch ${powerpc_build} ${i386_build} ${x86_64_build})
2929
dd4efe601bc6 restore tiger 10.4 deployment
koda
parents: 2924
diff changeset
   166
		set(lipo_args_list "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}" ${lipo_args_list})
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   167
		add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}"
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   168
			COMMAND "${pascal_compiler}"
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   169
			ARGS ${pascal_compiler_flags} -ohwengine.${build_arch} -P${build_arch}
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   170
			MAIN_DEPENDENCY ${hwengine_project}
2812
0a24853de796 add liblua to sources for macosx
koda
parents: 2809
diff changeset
   171
			DEPENDS ${engine_sources} SDLmain lua
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   172
			)
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   173
		add_custom_target(hwengine.${build_arch} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}")
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   174
	endforeach()
2003
41b3d00949ca Patch by koda:
unc0rr
parents: 1997
diff changeset
   175
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   176
	add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine"
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   177
		COMMAND "lipo"
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   178
		ARGS ${lipo_args_list} -create -output ${EXECUTABLE_OUTPUT_PATH}/hwengine
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   179
		DEPENDS ${lipo_args_list}
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   180
		)
2203
6bd39d75e0dd -Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents: 2200
diff changeset
   181
ENDIF()
2003
41b3d00949ca Patch by koda:
unc0rr
parents: 1997
diff changeset
   182
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   183
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
   184
add_custom_target(hwengine ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}")
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
   185
2015
d2848d723690 koda's patch
unc0rr
parents: 2003
diff changeset
   186
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
d2848d723690 koda's patch
unc0rr
parents: 2003
diff changeset
   187