hedgewars/CMakeLists.txt
author koda
Thu, 22 Nov 2012 00:41:53 +0100
branchwebgl
changeset 8096 453917e94e55
parent 8044 796f2653f21d
parent 8093 2286a39140da
child 8330 aaefa587e277
permissions -rw-r--r--
updated branch
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)
2401
2a694ea2a437 fixes & co.
koda
parents: 2326
diff changeset
     6
8087
ccc99eebdac2 little cmake cleanup, search installed modules first, then our own
koda
parents: 8082
diff changeset
     7
include(${CMAKE_SOURCE_DIR}/cmake_modules/FindSDL_Extras.cmake)
2672
0f1403bf267a check for sdl_image and sdl_mixer versions
koda
parents: 2671
diff changeset
     8
8044
796f2653f21d some CMake cleanup
koda
parents: 8026
diff changeset
     9
configure_file(${CMAKE_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2404
diff changeset
    10
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3680
diff changeset
    11
#SOURCE AND PROGRAMS SECTION
8044
796f2653f21d some CMake cleanup
koda
parents: 8026
diff changeset
    12
set(hwengine_project ${CMAKE_SOURCE_DIR}/hedgewars/hwengine.pas)
4930
5d59bb58c365 fix issue 185 :|
koda
parents: 4928
diff changeset
    13
set(engine_output_name "hwengine")
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
    14
2786
85f6425a4d74 Engine:
smxx
parents: 2673
diff changeset
    15
set(engine_sources
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    16
    ${hwengine_project}
7730
2013733f9ca9 A bit more on the knife. Also add missing files to CMakeLists
nemo
parents: 7718
diff changeset
    17
    LuaPas.pas
2013733f9ca9 A bit more on the knife. Also add missing files to CMakeLists
nemo
parents: 7718
diff changeset
    18
    PNGh.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    19
    SDLh.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    20
    uAI.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    21
    uAIActions.pas
7730
2013733f9ca9 A bit more on the knife. Also add missing files to CMakeLists
nemo
parents: 7718
diff changeset
    22
    uAILandMarks.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    23
    uAIAmmoTests.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    24
    uAIMisc.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    25
    uAmmos.pas
4393
883b979697e4 uCaptions
unc0rr
parents: 4386
diff changeset
    26
    uCaptions.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    27
    uChat.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    28
    uCollisions.pas
4373
fe0e3903bb9e Introduce uCommands.pas
unC0Rr
parents: 4357
diff changeset
    29
    uCommands.pas
4413
46caab3a8f84 uCommandHandlers
unc0rr
parents: 4403
diff changeset
    30
    uCommandHandlers.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    31
    uConsole.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    32
    uConsts.pas
7730
2013733f9ca9 A bit more on the knife. Also add missing files to CMakeLists
nemo
parents: 7718
diff changeset
    33
    uCursor.pas
4403
unc0rr
parents: 4393
diff changeset
    34
    uDebug.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    35
    uFloat.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    36
    uGame.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    37
    uGears.pas
7370
d50b874e7ee8 Introduce uGearsHandlers.pas, for now only part of cake handlers is moved there
unc0rr
parents: 7233
diff changeset
    38
    uGearsHandlers.pas
7592
cf67e58313ea Move rope code to separate unit
unc0rr
parents: 7370
diff changeset
    39
    uGearsHandlersRope.pas
7730
2013733f9ca9 A bit more on the knife. Also add missing files to CMakeLists
nemo
parents: 7718
diff changeset
    40
    uGearsHedgehog.pas
2013733f9ca9 A bit more on the knife. Also add missing files to CMakeLists
nemo
parents: 7718
diff changeset
    41
    uGearsList.pas
4386
855049a88c59 Forgot this
unc0rr
parents: 4380
diff changeset
    42
    uGearsRender.pas
7592
cf67e58313ea Move rope code to separate unit
unc0rr
parents: 7370
diff changeset
    43
    uGearsUtils.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    44
    uIO.pas
6954
a61458a81480 changed uKeys to uInputHandler to better reflect its function
Xeli
parents: 6920
diff changeset
    45
    uInputHandler.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    46
    uLand.pas
6491
736479f3d348 Some cleanup here and there
unc0rr
parents: 6224
diff changeset
    47
    uLandGenMaze.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    48
    uLandGraphics.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    49
    uLandObjects.pas
6491
736479f3d348 Some cleanup here and there
unc0rr
parents: 6224
diff changeset
    50
    uLandOutline.pas
4457
ffb766e85150 - Change painted map file format
unc0rr
parents: 4415
diff changeset
    51
    uLandPainted.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    52
    uLandTemplates.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    53
    uLandTexture.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    54
    uLocale.pas
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents: 8018
diff changeset
    55
    uMatrix.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    56
    uMisc.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    57
    uMobile.pas
7959
644b757d20e6 Start work on physfs support in engine
unc0rr
parents: 7817
diff changeset
    58
    uPhysFSLayer.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    59
    uRandom.pas
4378
91655618a510 Introduce uRender
unC0Rr
parents: 4375
diff changeset
    60
    uRender.pas
4380
b78638b36b89 Introduce uRenderUtils
unC0Rr
parents: 4378
diff changeset
    61
    uRenderUtils.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    62
    uScript.pas
4415
941251bad467 SinTable.inc -> uSinTable.pas
unc0rr
parents: 4413
diff changeset
    63
    uSinTable.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    64
    uSound.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    65
    uStats.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    66
    uStore.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    67
    uTeams.pas
4375
ae5507ddb989 Introduce uTextures
unC0Rr
parents: 4374
diff changeset
    68
    uTextures.pas
7730
2013733f9ca9 A bit more on the knife. Also add missing files to CMakeLists
nemo
parents: 7718
diff changeset
    69
    uTouch.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    70
    uTypes.pas
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
    71
    uUtils.pas
5179
8d64dcb566ea Fix "Mixing signed expressions and longwords gives a 64bit result" warnings
unc0rr
parents: 5169
diff changeset
    72
    uVariables.pas
7180
53ffc8853008 here it is
Stepan777 <stepik-777@mail.ru>
parents: 7114
diff changeset
    73
    uVideoRec.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    74
    uVisualGears.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    75
    uWorld.pas
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    76
    GSHandlers.inc
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    77
    VGSHandlers.inc
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    78
    ArgParsers.inc
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    79
    options.inc
4378
91655618a510 Introduce uRender
unC0Rr
parents: 4375
diff changeset
    80
    adler32.pas
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    81
    ${CMAKE_CURRENT_BINARY_DIR}/config.inc
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    82
    )
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 196
diff changeset
    83
7995
889ad929cc81 rename BUILD_ENGINE_LIBRARY to LIBENGINE option, so that no _ are used for cmake options
koda
parents: 7981
diff changeset
    84
if(LIBENGINE)
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
    85
    message(STATUS "Engine will be built as library (experimental)")
8044
796f2653f21d some CMake cleanup
koda
parents: 8026
diff changeset
    86
    set(hwengine_project ${CMAKE_SOURCE_DIR}/hedgewars/hwLibrary.pas)
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
    87
    set(pascal_flags "-dHWLIBRARY" ${pascal_flags})
4928
6ebbca960503 fix engine library compilation on linux/amd64
sheepluva
parents: 4457
diff changeset
    88
6ebbca960503 fix engine library compilation on linux/amd64
sheepluva
parents: 4457
diff changeset
    89
    # create position independent code, only required for x68_64 builds, similar to -fPIC
6ebbca960503 fix engine library compilation on linux/amd64
sheepluva
parents: 4457
diff changeset
    90
    if(CMAKE_SIZEOF_VOID_P MATCHES "8")
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
    91
        set(pascal_flags "-Cg" ${pascal_flags})
4928
6ebbca960503 fix engine library compilation on linux/amd64
sheepluva
parents: 4457
diff changeset
    92
    endif(CMAKE_SIZEOF_VOID_P MATCHES "8")
6ebbca960503 fix engine library compilation on linux/amd64
sheepluva
parents: 4457
diff changeset
    93
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
    94
    # due to compiler/linker issues on Max OS X 10.6 -k-no_order_inits is needed to avoid linking fail
5188
d0461bd6d45b some updates to the crossbuild system for mac
koda
parents: 5179
diff changeset
    95
    if(APPLE AND current_macosx_version GREATER "10.5")
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
    96
        set(pascal_flags "-k-no_order_inits" ${pascal_flags})
5188
d0461bd6d45b some updates to the crossbuild system for mac
koda
parents: 5179
diff changeset
    97
    endif()
4930
5d59bb58c365 fix issue 185 :|
koda
parents: 4928
diff changeset
    98
8082
675372256a01 lotsa hackery to get frontend somehow link libengine...
koda
parents: 8080
diff changeset
    99
    if(APPLE)
675372256a01 lotsa hackery to get frontend somehow link libengine...
koda
parents: 8080
diff changeset
   100
        set(engine_output_name "libhwengine.dylib")
4930
5d59bb58c365 fix issue 185 :|
koda
parents: 4928
diff changeset
   101
    endif (APPLE)
7995
889ad929cc81 rename BUILD_ENGINE_LIBRARY to LIBENGINE option, so that no _ are used for cmake options
koda
parents: 7981
diff changeset
   102
endif(LIBENGINE)
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
   103
7959
644b757d20e6 Start work on physfs support in engine
unc0rr
parents: 7817
diff changeset
   104
8090
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   105
#PASCAL DETECTION SECTION
7029
efbe6400fc24 add support for FPC and FPFLAGS cmake arguments (helps crosscompiling)
koda
parents: 6992
diff changeset
   106
IF(FPC)
efbe6400fc24 add support for FPC and FPFLAGS cmake arguments (helps crosscompiling)
koda
parents: 6992
diff changeset
   107
    set(fpc_executable ${FPC})
efbe6400fc24 add support for FPC and FPFLAGS cmake arguments (helps crosscompiling)
koda
parents: 6992
diff changeset
   108
ELSE()
efbe6400fc24 add support for FPC and FPFLAGS cmake arguments (helps crosscompiling)
koda
parents: 6992
diff changeset
   109
    find_program(fpc_executable fpc)
efbe6400fc24 add support for FPC and FPFLAGS cmake arguments (helps crosscompiling)
koda
parents: 6992
diff changeset
   110
ENDIF()
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
   111
8093
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   112
message(STATUS "Check for working FPC compiler: ${fpc_executable}")
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   113
execute_process(COMMAND ${fpc_executable} -iV OUTPUT_VARIABLE fpc_output ERROR_VARIABLE fpc_error)
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   114
if(fpc_error)
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   115
    message(STATUS "Check for working FPC compiler: ${fpc_executable} -- broken")
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   116
else(fpc_error)
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   117
    message(STATUS "Check for working FPC compiler: ${fpc_executable} -- works")
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   118
endif(fpc_error)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
   119
8090
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   120
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" fpc_version "${fpc_output}")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   121
if(fpc_version)
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   122
    string(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" fpc_vers_major "${fpc_version}")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   123
    string(REGEX REPLACE "[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1" fpc_vers_minor "${fpc_version}")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   124
    string(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" fpc_vers_patch "${fpc_version}")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   125
    message(STATUS "Found Freepascal: ${fpc_executable} (version ${fpc_vers_major}.${fpc_vers_minor})")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   126
    math(EXPR fpc_version "${fpc_vers_major}*10000 + ${fpc_vers_minor}*100 + ${fpc_vers_patch}")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   127
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   128
    if(fpc_version LESS "020200")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   129
        message(FATAL_ERROR "Minimum required version of FreePascal is 2.2.0")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   130
    elseif(APPLE AND (fpc_version LESS "020600"))
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   131
        message(FATAL_ERROR "Minimum required version of FreePascal is 2.6.0 on Mac OS X")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   132
    endif()
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   133
else()
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   134
    message(FATAL_ERROR "No FreePascal compiler found!")
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   135
endif()
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   136
8093
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   137
message(STATUS "Checking whether linker supports noexecstack flag")
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   138
set(noexecstack_flags "-k-z" "-knoexecstack")
781
4101f0f1c0b9 First steps to support out-of-source build
unc0rr
parents: 593
diff changeset
   139
file(WRITE ${EXECUTABLE_OUTPUT_PATH}/checkstack.pas "begin end.")
476
a4e975f70b60 check for noexecstack linker compatibility (MacOS linker)
displacer
parents: 433
diff changeset
   140
8090
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   141
execute_process(COMMAND ${fpc_executable} ${noexecstack_flags} checkstack.pas
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   142
    WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   143
    RESULT_VARIABLE testnoexecstack
8093
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   144
    OUTPUT_QUIET ERROR_QUIET
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   145
    )
476
a4e975f70b60 check for noexecstack linker compatibility (MacOS linker)
displacer
parents: 433
diff changeset
   146
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   147
if(${testnoexecstack})
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   148
    set (noexecstack_flags "")
8093
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   149
    message(STATUS "Checking whether linker supports noexecstack flag -- no")
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   150
else(${testnoexecstack})
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   151
    message(STATUS "Checking whether linker supports noexecstack flag -- yes")
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   152
endif(${testnoexecstack})
476
a4e975f70b60 check for noexecstack linker compatibility (MacOS linker)
displacer
parents: 433
diff changeset
   153
8090
38d9cc60b14c cleanup revision section, make hg launch tolerant to config errors, drop deprecated exec_prog for desktop configuration in favour of execute_process
koda
parents: 8087
diff changeset
   154
#DEPENDECIES AND EXECUTABLES SECTION
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   155
if(APPLE)
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   156
    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
   157
    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
   158
    string(REGEX MATCH "[xX]86_64+" x86_64_build "${CMAKE_OSX_ARCHITECTURES}")
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   159
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   160
    if(powerpc_build)
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   161
        set(powerpc_build "powerpc")
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   162
    endif()
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2644
diff changeset
   163
7708
95de696e4711 another little tweak
koda
parents: 7706
diff changeset
   164
    #on OSX we need to provide the SDL_main() function when building as executable
7995
889ad929cc81 rename BUILD_ENGINE_LIBRARY to LIBENGINE option, so that no _ are used for cmake options
koda
parents: 7981
diff changeset
   165
    if(NOT LIBENGINE)
7708
95de696e4711 another little tweak
koda
parents: 7706
diff changeset
   166
        #let's look for the installed sdlmain file; if it is not found, let's build our own
7109
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   167
        find_package(SDL REQUIRED)
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   168
        #remove the ";-framework Cocoa" from the SDL_LIBRARY variable
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   169
        string(REGEX REPLACE "(.*);-.*" "\\1" sdl_dir "${SDL_LIBRARY}")
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   170
        #find libsdmain.a
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   171
        find_file(SDLMAIN_LIB libSDLMain.a PATHS ${sdl_dir}/Resources/)
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   172
7109
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   173
        if(SDLMAIN_LIB MATCHES "SDLMAIN_LIB-NOTFOUND")
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   174
            include_directories(${SDL_INCLUDE_DIR})
7981
aac257b77842 move stuff out of engine folder
koda
parents: 7817
diff changeset
   175
            add_library (SDLmain STATIC sdlmain_osx/SDLMain.m)
7109
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   176
            #add a dependency to the hwengine target
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   177
            set(engine_sources ${engine_sources} SDLmain)
7708
95de696e4711 another little tweak
koda
parents: 7706
diff changeset
   178
            set(SDLMAIN_LIB "${LIBRARY_OUTPUT_PATH}/libSDLmain.a")
7109
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   179
        endif()
2669
4eec706e86b0 introduction of IMG_Init
koda
parents: 2666
diff changeset
   180
8082
675372256a01 lotsa hackery to get frontend somehow link libengine...
koda
parents: 8080
diff changeset
   181
        set(pascal_flags "-k${SDLMAIN_LIB}" ${pascal_flags})
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   182
    endif()
8082
675372256a01 lotsa hackery to get frontend somehow link libengine...
koda
parents: 8080
diff changeset
   183
    set(pascal_flags "-k${LIBRARY_OUTPUT_PATH}/libphysfs.a" ${pascal_flags})
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   184
endif(APPLE)
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   185
7114
e0110a1229b7 add NOPNG to cmake to explicitly disable PNG dependency
koda
parents: 7112
diff changeset
   186
if(NOT NOPNG)
e0110a1229b7 add NOPNG to cmake to explicitly disable PNG dependency
koda
parents: 7112
diff changeset
   187
    find_package(PNG)
e0110a1229b7 add NOPNG to cmake to explicitly disable PNG dependency
koda
parents: 7112
diff changeset
   188
    if(${PNG_FOUND})
e0110a1229b7 add NOPNG to cmake to explicitly disable PNG dependency
koda
parents: 7112
diff changeset
   189
        set(pascal_flags "-dPNG_SCREENSHOTS" ${pascal_flags})
7817
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7816
diff changeset
   190
        if(APPLE)  # fpc png unit doesn't pull the library (see bug 21833)
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7816
diff changeset
   191
            set(pascal_flags "-k${PNG_LIBRARY}" ${pascal_flags})
7114
e0110a1229b7 add NOPNG to cmake to explicitly disable PNG dependency
koda
parents: 7112
diff changeset
   192
        endif()
e0110a1229b7 add NOPNG to cmake to explicitly disable PNG dependency
koda
parents: 7112
diff changeset
   193
    else()
8093
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   194
        message(WARNING "Screenshots will be in BMP format because libpng was not found")
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   195
    endif()
7223
b554726ff468 uniform NOPNG and NOSERVER cmake symbols
koda
parents: 7114
diff changeset
   196
else()
7718
97ba379164ec use cmake OPTION for arguments and further cleanup on CMakeFiles
koda
parents: 7708
diff changeset
   197
    message(STATUS "Screenshots will be in BMP format per user request")
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   198
endif()
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   199
7655
b993257902d3 if this doesn't work I shall cry like a lady
sheepluva
parents: 7654
diff changeset
   200
7706
19ade14ecc29 forgot a few checks from rev f40c65ae3eab
koda
parents: 7694
diff changeset
   201
#this command is a workaround to some inlining issues present in older FreePascal versions and fixed in 2.6
19ade14ecc29 forgot a few checks from rev f40c65ae3eab
koda
parents: 7694
diff changeset
   202
if(fpc_version LESS "020600")
7940
d5e49cf042d9 fix parallel compilation
hasufell
parents: 7817
diff changeset
   203
    #under some configurations CMAKE_BUILD_TOOL fails to pass on the jobserver, breaking parallel compilation
d5e49cf042d9 fix parallel compilation
hasufell
parents: 7817
diff changeset
   204
    #TODO: check if this is needed on windows too
d5e49cf042d9 fix parallel compilation
hasufell
parents: 7817
diff changeset
   205
    if(UNIX)
d5e49cf042d9 fix parallel compilation
hasufell
parents: 7817
diff changeset
   206
        set(SAFE_BUILD_TOOL $(MAKE))
d5e49cf042d9 fix parallel compilation
hasufell
parents: 7817
diff changeset
   207
    else()
d5e49cf042d9 fix parallel compilation
hasufell
parents: 7817
diff changeset
   208
        set(SAFE_BUILD_TOOL ${CMAKE_BUILD_TOOL})
d5e49cf042d9 fix parallel compilation
hasufell
parents: 7817
diff changeset
   209
    endif()
8044
796f2653f21d some CMake cleanup
koda
parents: 8026
diff changeset
   210
    add_custom_target(ENGINECLEAN COMMAND ${SAFE_BUILD_TOOL} "clean" "${PROJECT_BINARY_DIR}" "${CMAKE_SOURCE_DIR}/hedgewars")
7655
b993257902d3 if this doesn't work I shall cry like a lady
sheepluva
parents: 7654
diff changeset
   211
endif()
b993257902d3 if this doesn't work I shall cry like a lady
sheepluva
parents: 7654
diff changeset
   212
b993257902d3 if this doesn't work I shall cry like a lady
sheepluva
parents: 7654
diff changeset
   213
7718
97ba379164ec use cmake OPTION for arguments and further cleanup on CMakeFiles
koda
parents: 7708
diff changeset
   214
if(NOT NOVIDEOREC)
7817
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7816
diff changeset
   215
    set(FFMPEG_FIND_QUIETLY true)
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7816
diff changeset
   216
    find_package(FFMPEG)
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   217
    if(${FFMPEG_FOUND})
7954
a5f0a6d46c52 advice from hasufell
koda
parents: 7942
diff changeset
   218
        # TODO: this check is only for SDL < 2
a5f0a6d46c52 advice from hasufell
koda
parents: 7942
diff changeset
   219
        # fpc will take care of linking but we need to have this library installed
a5f0a6d46c52 advice from hasufell
koda
parents: 7942
diff changeset
   220
        find_package(GLUT REQUIRED)
a5f0a6d46c52 advice from hasufell
koda
parents: 7942
diff changeset
   221
a5f0a6d46c52 advice from hasufell
koda
parents: 7942
diff changeset
   222
        #TODO: convert avwrapper to .pas unit so we can skip this step
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   223
        include_directories(${FFMPEG_INCLUDE_DIR})
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   224
        set(pascal_flags "-dUSE_VIDEO_RECORDING" ${pascal_flags})
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   225
        IF (WIN32)
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   226
            # there are some problems with linking our avwrapper as static lib, so link it as shared
7981
aac257b77842 move stuff out of engine folder
koda
parents: 7817
diff changeset
   227
            add_library(avwrapper SHARED videorec/avwrapper.c)
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   228
            target_link_libraries(avwrapper ${FFMPEG_LIBRARIES})
7622
172fb1c7615b Fix library installation in win32
unc0rr
parents: 7618
diff changeset
   229
            install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}avwrapper${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION ${target_dir})
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   230
        ELSE()
7981
aac257b77842 move stuff out of engine folder
koda
parents: 7817
diff changeset
   231
            add_library(avwrapper STATIC videorec/avwrapper.c)
7618
4d3a32d91028 fix build for me
sheepluva
parents: 7615
diff changeset
   232
            set(pascal_flags "-k${FFMPEG_LIBAVCODEC}" "-k${FFMPEG_LIBAVFORMAT}" "-k${FFMPEG_LIBAVUTIL}" ${pascal_flags})
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   233
        ENDIF()
7540
cc6c656f70b5 cmake scripts
Stepan777 <stepik-777@mail.ru>
parents: 7538
diff changeset
   234
    else()
8093
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   235
        message(WARNING "Could NOT find FFMPEG/LibAV, video recording will be disabled")
7538
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   236
    endif()
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   237
else()
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   238
    message(STATUS "Video recording disabled by user")
2d6e69b392cb better cmake script
Stepan777 <stepik-777@mail.ru>
parents: 7534
diff changeset
   239
endif()
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   240
8077
2ea5cde93abc Fix build
unc0rr
parents: 8073
diff changeset
   241
set(pascal_flags "-Fl${LIBRARY_OUTPUT_PATH}" ${pascal_flags})
8067
34a679e5ca9d Link some libraries needed for physfs on windows (there are still 5 symbols which couldn't be found - to be resolved)
unc0rr
parents: 8064
diff changeset
   242
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   243
set(fpc_flags ${noexecstack_flags} ${pascal_flags} ${hwengine_project})
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   244
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   245
IF(NOT APPLE)
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   246
    #here is the command for standard executables or for shared library
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   247
    add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}"
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   248
        COMMAND "${fpc_executable}"
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   249
        ARGS ${fpc_flags}
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   250
        MAIN_DEPENDENCY ${hwengine_project}
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   251
        DEPENDS ${engine_sources}
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   252
        )
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   253
ELSE()
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   254
    #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
   255
    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
   256
        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
   257
        add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}"
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   258
            COMMAND "${fpc_executable}"
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 7109
diff changeset
   259
            ARGS ${fpc_flags} -ohwengine.${build_arch} -P${build_arch}
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   260
            MAIN_DEPENDENCY ${hwengine_project}
7109
af3a43a46f21 there a libSDLMain.a in the bundled SDL framework
koda
parents: 7031
diff changeset
   261
            DEPENDS ${engine_sources}
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   262
            )
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   263
        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
   264
    endforeach()
2003
41b3d00949ca Patch by koda:
unc0rr
parents: 1997
diff changeset
   265
4930
5d59bb58c365 fix issue 185 :|
koda
parents: 4928
diff changeset
   266
    add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}"
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   267
        COMMAND "lipo"
4930
5d59bb58c365 fix issue 185 :|
koda
parents: 4928
diff changeset
   268
        ARGS ${lipo_args_list} -create -output ${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   269
        DEPENDS ${lipo_args_list}
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4158
diff changeset
   270
        )
2203
6bd39d75e0dd -Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents: 2200
diff changeset
   271
ENDIF()
2003
41b3d00949ca Patch by koda:
unc0rr
parents: 1997
diff changeset
   272
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2629
diff changeset
   273
4930
5d59bb58c365 fix issue 185 :|
koda
parents: 4928
diff changeset
   274
add_custom_target(${engine_output_name} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}")
7031
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 7029
diff changeset
   275
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 7029
diff changeset
   276
#when system Lua is not found we need to compile it before engine
7233
225179f64fd8 LUA_FOUND should surely be set only if the system lua was found.
nemo
parents: 7223
diff changeset
   277
if(NOT LUA_FOUND)
7031
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 7029
diff changeset
   278
    add_dependencies(${engine_output_name} lua)
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 7029
diff changeset
   279
endif()
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 7029
diff changeset
   280
8019
b216953c2617 merge with default
unc0rr
parents: 7967 7954
diff changeset
   281
# compile physfs before engine
7967
2f4fa2a06e4f Build physfs lib before engine
unc0rr
parents: 7959
diff changeset
   282
add_dependencies(${engine_output_name} physfs)
2f4fa2a06e4f Build physfs lib before engine
unc0rr
parents: 7959
diff changeset
   283
7942
17b3937de37b avwrapper needs to depend on hwengine not on ENGINECLEAN
koda
parents: 7940
diff changeset
   284
#when ffmpeg/libav is found we need to compile it before engine
7954
a5f0a6d46c52 advice from hasufell
koda
parents: 7942
diff changeset
   285
#TODO: convert avwrapper to .pas unit so we can skip this step
7942
17b3937de37b avwrapper needs to depend on hwengine not on ENGINECLEAN
koda
parents: 7940
diff changeset
   286
if(${FFMPEG_FOUND})
17b3937de37b avwrapper needs to depend on hwengine not on ENGINECLEAN
koda
parents: 7940
diff changeset
   287
    add_dependencies(${engine_output_name} avwrapper)
17b3937de37b avwrapper needs to depend on hwengine not on ENGINECLEAN
koda
parents: 7940
diff changeset
   288
endif()
17b3937de37b avwrapper needs to depend on hwengine not on ENGINECLEAN
koda
parents: 7940
diff changeset
   289
7706
19ade14ecc29 forgot a few checks from rev f40c65ae3eab
koda
parents: 7694
diff changeset
   290
#this command is a workaround to some inlining issues present in older FreePascal versions and fixed in 2.6
7817
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7816
diff changeset
   291
if((fpc_version LESS "020600") AND (NOVIDEOREC OR NOT ${FFMPEG_FOUND}))
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7816
diff changeset
   292
    add_dependencies(${engine_output_name} ENGINECLEAN)
7653
6dda2562f692 engineclean returns
sheepluva
parents: 7622
diff changeset
   293
endif()
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 173
diff changeset
   294
4930
5d59bb58c365 fix issue 185 :|
koda
parents: 4928
diff changeset
   295
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})