hedgewars/CMakeLists.txt
author Henek
Mon, 13 Dec 2010 15:02:04 +0100
changeset 4517 0618b31023dc
parent 4457 ffb766e85150
child 4928 6ebbca960503
permissions -rw-r--r--
added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
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)
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    14
    file(STRINGS ${sdlmixer_h} sdlmixer_version_tmp REGEX "SDL_MIXER_PATCHLEVEL[\t' ']+[0-9]+")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
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
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    17
    if(sdlmixer_version GREATER 9)
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    18
        message(STATUS "Enabling enhanced SDL_Mixer calls")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    19
        set(pascal_compiler_flags_cmn "-dSDL_MIXER_NEWER" ${pascal_compiler_flags_cmn})
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
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)
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    25
    file(STRINGS ${sdlimage_h} sdlimage_version_tmp REGEX "SDL_IMAGE_PATCHLEVEL[\t' ']+[0-9]+")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
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
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    28
    if(sdlimage_version GREATER 7)
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    29
        message(STATUS "Enabling enhanced SDL_Image calls")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    30
        set(pascal_compiler_flags_cmn "-dSDL_IMAGE_NEWER" ${pascal_compiler_flags_cmn})
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
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
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    39
    ${hwengine_project}
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    40
    SDLh.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    41
    uAI.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    42
    uAIActions.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    43
    uAIAmmoTests.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    44
    uAIMisc.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    45
    uAmmos.pas
4393
883b979697e4 uCaptions
unc0rr
parents: 4386
diff changeset
    46
    uCaptions.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    47
    uChat.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    48
    uCollisions.pas
4373
fe0e3903bb9e Introduce uCommands.pas
unC0Rr
parents: 4357
diff changeset
    49
    uCommands.pas
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents: 4403
diff changeset
    50
    uCommandHandlers.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    51
    uConsole.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    52
    uConsts.pas
4403
unc0rr
parents: 4393
diff changeset
    53
    uDebug.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    54
    uFloat.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    55
    uGame.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    56
    uGears.pas
4386
855049a88c59 Forgot this
unc0rr
parents: 4380
diff changeset
    57
    uGearsRender.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    58
    uIO.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    59
    uKeys.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    60
    uLand.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    61
    uLandGraphics.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    62
    uLandObjects.pas
4457
ffb766e85150 - Change painted map file format
unc0rr
parents: 4415
diff changeset
    63
    uLandPainted.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    64
    uLandTemplates.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    65
    uLandTexture.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    66
    uLocale.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    67
    uMisc.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    68
    uMobile.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    69
    uRandom.pas
4378
91655618a510 Introduce uRender
unC0Rr
parents: 4375
diff changeset
    70
    uRender.pas
4380
b78638b36b89 Introduce uRenderUtils
unC0Rr
parents: 4378
diff changeset
    71
    uRenderUtils.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    72
    uScript.pas
4415
941251bad467 SinTable.inc -> uSinTable.pas
unc0rr
parents: 4413
diff changeset
    73
    uSinTable.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    74
    uSound.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    75
    uStats.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    76
    uStore.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    77
    uTeams.pas
4375
ae5507ddb989 Introduce uTextures
unC0Rr
parents: 4374
diff changeset
    78
    uTextures.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    79
    uTypes.pas
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
    80
    uUtils.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    81
    uVisualGears.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    82
    uWorld.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    83
    GSHandlers.inc
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    84
    VGSHandlers.inc
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    85
    HHHandlers.inc
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    86
    ArgParsers.inc
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    87
    options.inc
4378
91655618a510 Introduce uRender
unC0Rr
parents: 4375
diff changeset
    88
    adler32.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    89
    ${CMAKE_CURRENT_BINARY_DIR}/config.inc
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    90
    )
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    91
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
    92
if(BUILD_ENGINE_LIBRARY)
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    93
    message(STATUS "Engine will be built as library (experimental)")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    94
    set(hwengine_project ${hedgewars_SOURCE_DIR}/hedgewars/hwLibrary.pas)
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    95
    set(engine_sources ${hwengine_project} PascalExports.pas ${engine_sources})
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    96
    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
    97
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
    98
a6b4f351d400 now engine can be optionally built as library, there's an example wrapper of how to use it
koda
parents: 3468
diff changeset
    99
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
   100
find_program(fpc_executable ${fpc_tryexe})
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
   101
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   102
if(fpc_executable)
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   103
    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
   104
endif(fpc_executable)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
   105
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   106
set(noexecstack_flags "-k-z" "-knoexecstack")
781
4101f0f1c0b9 First steps to support out-of-source build
unc0rr
parents: 593
diff changeset
   107
file(WRITE ${EXECUTABLE_OUTPUT_PATH}/checkstack.pas "begin end.")
476
a4e975f70b60 check for noexecstack linker compatibility (MacOS linker)
displacer
parents: 433
diff changeset
   108
781
4101f0f1c0b9 First steps to support out-of-source build
unc0rr
parents: 593
diff changeset
   109
exec_program(${fpc_executable} ${EXECUTABLE_OUTPUT_PATH}
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   110
    ARGS ${noexecstack_flags} checkstack.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   111
    OUTPUT_VARIABLE noout
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   112
    RETURN_VALUE testnoexecstack
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   113
    )
476
a4e975f70b60 check for noexecstack linker compatibility (MacOS linker)
displacer
parents: 433
diff changeset
   114
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   115
if(${testnoexecstack})
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   116
    set (noexecstack_flags "")
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   117
endif(${testnoexecstack})
476
a4e975f70b60 check for noexecstack linker compatibility (MacOS linker)
displacer
parents: 433
diff changeset
   118
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   119
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   120
if(APPLE)
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   121
    string(REGEX MATCH "[pP][pP][cC]+" powerpc_build "${CMAKE_OSX_ARCHITECTURES}")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   122
    string(REGEX MATCH "[iI]386+" i386_build "${CMAKE_OSX_ARCHITECTURES}")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   123
    string(REGEX MATCH "[xX]86_64+" x86_64_build "${CMAKE_OSX_ARCHITECTURES}")
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   124
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   125
    if(powerpc_build)
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   126
        set(powerpc_build "powerpc")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   127
    endif()
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   128
endif(APPLE)
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   129
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   130
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   131
#PASCAL DETECTION SECTION
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   132
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" fpc_version "${fpc_output}")
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   133
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   134
if(fpc_version)
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   135
    string(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" fpc_vers_major "${fpc_version}")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   136
    string(REGEX REPLACE "[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1" fpc_vers_minor "${fpc_version}")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   137
    string(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" fpc_vers_patch "${fpc_version}")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   138
    message(STATUS "Freepascal version detected: ${fpc_vers_major}.${fpc_vers_minor}")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   139
    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
   140
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   141
    if(fpc_ver LESS "020200")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   142
        message(FATAL_ERROR "Minimum required version of FreePascal is 2.2.0")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   143
    elseif(APPLE AND x86_64_build AND fpc_ver LESS "020400")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   144
        message(FATAL_ERROR "Minimum required version of FreePascal is 2.4.0 for building 64 bit applications!")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   145
    endif()
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   146
else()
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   147
    message(FATAL_ERROR "No Pascal compiler found!")
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   148
endif()
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   149
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   150
set(pascal_compiler ${fpc_executable})
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2601
diff changeset
   151
set(pascal_compiler_flags ${noexecstack_flags} ${pascal_compiler_flags_cmn} ${hwengine_project})
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   152
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   153
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
   154
#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
   155
IF(NOT APPLE OR BUILD_ENGINE_LIBRARY)
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   156
    #here is the command for standard executables or for shared library
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   157
    add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}"
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   158
        COMMAND "${pascal_compiler}"
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   159
        ARGS ${pascal_compiler_flags}
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   160
        MAIN_DEPENDENCY ${hwengine_project}
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   161
        DEPENDS ${engine_sources}
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   162
        )
2203
6bd39d75e0dd -Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents: 2200
diff changeset
   163
ELSE()
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   164
    #let's build sdlmain, which is absent from the framework
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   165
    find_package(SDL REQUIRED)
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   166
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   167
    set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   168
    include_directories(${SDL_INCLUDE_DIR})
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   169
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   170
    add_library (SDLmain STATIC SDLMain.m)
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   171
2809
b8956af350c1 mac build supports lua
koda
parents: 2804
diff changeset
   172
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   173
    #these are the dependencies for building a universal binary on Mac OS X
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   174
    foreach (build_arch ${powerpc_build} ${i386_build} ${x86_64_build})
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   175
        set(lipo_args_list "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}" ${lipo_args_list})
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   176
        add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}"
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   177
            COMMAND "${pascal_compiler}"
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   178
            ARGS ${pascal_compiler_flags} -ohwengine.${build_arch} -P${build_arch}
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   179
            MAIN_DEPENDENCY ${hwengine_project}
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   180
            DEPENDS ${engine_sources} SDLmain lua
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   181
            )
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   182
        add_custom_target(hwengine.${build_arch} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   183
    endforeach()
2003
41b3d00949ca Patch by koda:
unc0rr
parents: 1997
diff changeset
   184
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   185
    add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine"
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   186
        COMMAND "lipo"
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   187
        ARGS ${lipo_args_list} -create -output ${EXECUTABLE_OUTPUT_PATH}/hwengine
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   188
        DEPENDS ${lipo_args_list}
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   189
        )
2203
6bd39d75e0dd -Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents: 2200
diff changeset
   190
ENDIF()
2003
41b3d00949ca Patch by koda:
unc0rr
parents: 1997
diff changeset
   191
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   192
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
   193
add_custom_target(hwengine ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}")
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
   194
2015
d2848d723690 koda's patch
unc0rr
parents: 2003
diff changeset
   195
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
d2848d723690 koda's patch
unc0rr
parents: 2003
diff changeset
   196