CMakeLists.txt
author koda
Mon, 17 Jun 2013 16:56:58 +0200
branchwebgl
changeset 9197 e4e366013e9a
parent 9160 fc46e75f6b72
parent 9165 7b0d5388abc4
child 9236 ddd675825672
permissions -rw-r--r--
update with default
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
     1
project(hedgewars)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
     2
5407
486231e82e8d typo and spaces
koda
parents: 5405
diff changeset
     3
#initialise cmake environment
8104
09c38cdf380d show console on win when debugging to see frontend messages
koda
parents: 8093
diff changeset
     4
cmake_minimum_required(VERSION 2.6.0)
9165
7b0d5388abc4 stack-protector flag needs to be passed to the linker as well
koda
parents: 9152
diff changeset
     5
foreach(hwpolicy CMP0003 CMP0012 CMP0017 CMP0018)
8146
1fba650c2aa4 GCI2012: Lowercase CMake functions (main files only)
m4tx
parents: 8104
diff changeset
     6
    if(POLICY ${hwpolicy})
1fba650c2aa4 GCI2012: Lowercase CMake functions (main files only)
m4tx
parents: 8104
diff changeset
     7
        cmake_policy(SET ${hwpolicy} NEW)
1fba650c2aa4 GCI2012: Lowercase CMake functions (main files only)
m4tx
parents: 8104
diff changeset
     8
    endif()
1fba650c2aa4 GCI2012: Lowercase CMake functions (main files only)
m4tx
parents: 8104
diff changeset
     9
endforeach()
8611
90f445317e8a support WARNING message status on cmake 2.6 (bug 524)
koda
parents: 8597
diff changeset
    10
8674
fff355ba2902 our cmake modules have become good enough, prefer them over system ones
koda
parents: 8673
diff changeset
    11
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules")
8673
834e2d3b43d2 Backed out changeset 4cccc0520988
koda
parents: 8672
diff changeset
    12
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: 8089
diff changeset
    13
8614
5f74a047cf2c drop useless option, automatically set revision and debug info
koda
parents: 8613
diff changeset
    14
#possible cmake configuration
8687
5b6ad1bd6ace update option list
koda
parents: 8686
diff changeset
    15
option(NOSERVER "Disable gameServer build (off)]" OFF)
5b6ad1bd6ace update option list
koda
parents: 8686
diff changeset
    16
option(NOPNG "Disable screenshoot compression (off)" OFF)
5b6ad1bd6ace update option list
koda
parents: 8686
diff changeset
    17
option(NOVIDEOREC "Disable video recording (off)" OFF)
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: 8089
diff changeset
    18
8549
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
    19
#set this to ON when 2.1.0 becomes more widespread (and only for linux)
9096
b3041025c271 fix the cmake flag PHYSFS_SYSTEM being called SYSTEM_PHYSFS in the code
sheepluva
parents: 9091
diff changeset
    20
option(PHYSFS_SYSTEM "Use system physfs (off)" OFF)
8549
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
    21
8833
c13ebed437cb update webgl branch
koda
parents: 8450 8734
diff changeset
    22
option(LIBENGINE "Enable hwengine library (off)" OFF)
8687
5b6ad1bd6ace update option list
koda
parents: 8686
diff changeset
    23
option(ANDROID "Enable Android build (off)" OFF)
5b6ad1bd6ace update option list
koda
parents: 8686
diff changeset
    24
5b6ad1bd6ace update option list
koda
parents: 8686
diff changeset
    25
if(UNIX AND NOT APPLE)
5b6ad1bd6ace update option list
koda
parents: 8686
diff changeset
    26
    option(MINIMAL_FLAGS "Respect system flags as much as possible (off)" OFF)
5b6ad1bd6ace update option list
koda
parents: 8686
diff changeset
    27
else()
8659
e49056d3aba1 fail if sparkle not found consciously
koda
parents: 8650
diff changeset
    28
    option(NOAUTOUPDATE "Disable OS X Sparkle update checking" OFF)
e49056d3aba1 fail if sparkle not found consciously
koda
parents: 8650
diff changeset
    29
endif()
8549
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
    30
8096
453917e94e55 updated branch
koda
parents: 8044 8093
diff changeset
    31
option(WEBGL "Enable WebGL build (implies NOPASCAL) [default: off]" OFF)
453917e94e55 updated branch
koda
parents: 8044 8093
diff changeset
    32
option(NOPASCAL "Compile hwengine as native C [default: off]" ${WEBGL})
8833
c13ebed437cb update webgl branch
koda
parents: 8450 8734
diff changeset
    33
option(GL2 "Enable OpenGL 2 rendering [default: off]" OFF)
8096
453917e94e55 updated branch
koda
parents: 8044 8093
diff changeset
    34
8333
416cb5e5a405 move DATA_INSTALL_DIR to the configurable options section
koda
parents: 8331
diff changeset
    35
set(FPFLAGS "" CACHE STRING "Additional Freepascal flags")
416cb5e5a405 move DATA_INSTALL_DIR to the configurable options section
koda
parents: 8331
diff changeset
    36
set(GHFLAGS "" CACHE STRING "Additional Haskell flags")
416cb5e5a405 move DATA_INSTALL_DIR to the configurable options section
koda
parents: 8331
diff changeset
    37
if(UNIX AND NOT APPLE)
416cb5e5a405 move DATA_INSTALL_DIR to the configurable options section
koda
parents: 8331
diff changeset
    38
    set(DATA_INSTALL_DIR "share/hedgewars" CACHE STRING "Resource folder path")
416cb5e5a405 move DATA_INSTALL_DIR to the configurable options section
koda
parents: 8331
diff changeset
    39
endif()
8104
09c38cdf380d show console on win when debugging to see frontend messages
koda
parents: 8093
diff changeset
    40
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: 8089
diff changeset
    41
5405
5b17e1b3e0d5 better variable grouping...
koda
parents: 5223
diff changeset
    42
#versioning
5407
486231e82e8d typo and spaces
koda
parents: 5405
diff changeset
    43
set(CPACK_PACKAGE_VERSION_MAJOR 0)
486231e82e8d typo and spaces
koda
parents: 5405
diff changeset
    44
set(CPACK_PACKAGE_VERSION_MINOR 9)
9141
e391e9a19b1c Bump protocol and version (game desync would be triggered by b70352db5675, 2ae44c4381cd - other revisions probably safe)
nemo
parents: 9106
diff changeset
    45
set(CPACK_PACKAGE_VERSION_PATCH 20)
e391e9a19b1c Bump protocol and version (game desync would be triggered by b70352db5675, 2ae44c4381cd - other revisions probably safe)
nemo
parents: 9106
diff changeset
    46
set(HEDGEWARS_PROTO_VER 46)
5407
486231e82e8d typo and spaces
koda
parents: 5405
diff changeset
    47
set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
9150
79c58ff0d4b1 move platform specific and revision info code into separate cmake modules
koda
parents: 9141
diff changeset
    48
include(${CMAKE_MODULE_PATH}/revinfo.cmake)
8113
0ad9c42dca7c Refactor Clang module.
Bryan Dunsmore <dunsmoreb@gmail.com>
parents: 8111
diff changeset
    49
set(required_clang_version 3.0)
5405
5b17e1b3e0d5 better variable grouping...
koda
parents: 5223
diff changeset
    50
8650
18807b6302c8 version variables confom to naming convention
koda
parents: 8646
diff changeset
    51
message(STATUS "Building ${HEDGEWARS_VERSION}-r${HEDGEWARS_REVISION} (${HEDGEWARS_HASH})")
907
a5b0b93a39c8 Use constant generated by cmake for version string
unc0rr
parents: 904
diff changeset
    52
8340
46a9fde631f4 install shaders only when needed, find clang only when needed, fix building on windows, better cmake boolean vars
koda
parents: 8334
diff changeset
    53
if (${NOPASCAL})
46a9fde631f4 install shaders only when needed, find clang only when needed, fix building on windows, better cmake boolean vars
koda
parents: 8334
diff changeset
    54
    find_package(Clang)
46a9fde631f4 install shaders only when needed, find clang only when needed, fix building on windows, better cmake boolean vars
koda
parents: 8334
diff changeset
    55
    # Check LLVM/Clang version
8334
abb48dd39e26 Added shaders and -GL2 option
Michael Hartman <omh1280@gmail.com>
parents: 8330
diff changeset
    56
	if (CLANG_VERSION VERSION_LESS required_clang_version)
8450
404ddce27b23 add support for clang 3.3 (although there has to be a better way for this) and output right version number
koda
parents: 8444
diff changeset
    57
		message(FATAL_ERROR "LLVM/Clang compiler required version is ${required_clang_version} but version ${CLANG_VERSION} was found!")
8334
abb48dd39e26 Added shaders and -GL2 option
Michael Hartman <omh1280@gmail.com>
parents: 8330
diff changeset
    58
	else()
abb48dd39e26 Added shaders and -GL2 option
Michael Hartman <omh1280@gmail.com>
parents: 8330
diff changeset
    59
		message(STATUS "Found CLANG: ${CLANG_EXECUTABLE} (version ${CLANG_VERSION})")
abb48dd39e26 Added shaders and -GL2 option
Michael Hartman <omh1280@gmail.com>
parents: 8330
diff changeset
    60
	endif()
8340
46a9fde631f4 install shaders only when needed, find clang only when needed, fix building on windows, better cmake boolean vars
koda
parents: 8334
diff changeset
    61
endif(${NOPASCAL})
5405
5b17e1b3e0d5 better variable grouping...
koda
parents: 5223
diff changeset
    62
907
a5b0b93a39c8 Use constant generated by cmake for version string
unc0rr
parents: 904
diff changeset
    63
8614
5f74a047cf2c drop useless option, automatically set revision and debug info
koda
parents: 8613
diff changeset
    64
5f74a047cf2c drop useless option, automatically set revision and debug info
koda
parents: 8613
diff changeset
    65
#where to build libs and bins
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    66
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    67
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    68
8614
5f74a047cf2c drop useless option, automatically set revision and debug info
koda
parents: 8613
diff changeset
    69
#resource paths
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    70
if(UNIX AND NOT APPLE)
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    71
    set(target_binary_install_dir "bin")
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    72
    set(target_library_install_dir "lib")
8646
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    73
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    74
    string(SUBSTRING "${DATA_INSTALL_DIR}" 0 1 sharepath_start)
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    75
    if (NOT (${sharepath_start} MATCHES "/"))
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    76
        set(HEDGEWARS_DATADIR "${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR}/")
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    77
    else()
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    78
        set(HEDGEWARS_DATADIR "${DATA_INSTALL_DIR}/")
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    79
    endif()
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    80
    set(HEDGEWARS_FULL_DATADIR "${HEDGEWARS_DATADIR}")
7718
97ba379164ec use cmake OPTION for arguments and further cleanup on CMakeFiles
koda
parents: 7709
diff changeset
    81
else()
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    82
    set(target_binary_install_dir "./")
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    83
8317
ec9f94ab2737 remove the CROSSAPPLE option until a better solution is found
koda
parents: 8316
diff changeset
    84
    if(APPLE)
8646
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    85
        set(target_library_install_dir "../Frameworks/")
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    86
        set(CMAKE_INSTALL_PREFIX "Hedgewars.app/Contents/MacOS/")
8646
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    87
        set(HEDGEWARS_DATADIR "../Resources/")
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    88
        set(HEDGEWARS_FULL_DATADIR "/Applications/${CMAKE_INSTALL_PREFIX}/${HEDGEWARS_DATADIR}")
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    89
    elseif(WIN32)
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    90
        set(target_library_install_dir "./")
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    91
        set(HEDGEWARS_DATADIR "./")
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    92
        set(HEDGEWARS_FULL_DATADIR "${CMAKE_INSTALL_PREFIX}/")
e31044b7fbba on linux assume datapath is always relative to cmake_install_prefix, unless you provide an absolute path; on win32/osx hardcode engine path to default installation prefixes (it gets overridden at runtime so it works even if you move the data folder)
koda
parents: 8644
diff changeset
    93
        link_directories("${EXECUTABLE_OUTPUT_PATH}" "${CMAKE_SOURCE_DIR}/misc/winutils/bin")
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8313
diff changeset
    94
    endif()
7256
5b97b9946cde CROSSAPPLE ftw
koda
parents: 7233
diff changeset
    95
endif()
5b97b9946cde CROSSAPPLE ftw
koda
parents: 7233
diff changeset
    96
9150
79c58ff0d4b1 move platform specific and revision info code into separate cmake modules
koda
parents: 9141
diff changeset
    97
#platform specific init code
79c58ff0d4b1 move platform specific and revision info code into separate cmake modules
koda
parents: 9141
diff changeset
    98
include(${CMAKE_MODULE_PATH}/platform.cmake)
2015
d2848d723690 koda's patch
unc0rr
parents: 2005
diff changeset
    99
2406
2e757b32991e cmake optimizations and simplification
koda
parents: 2401
diff changeset
   100
7705
15f5d3cd35c6 force a DEBUG build when HW_DEV is true, some CMakeLists.txt cleanup/commenting
koda
parents: 7704
diff changeset
   101
#when build type is not specified, assume Debug/Release according to build version information
7709
631852904cee only accept RELASE and DEBUG build type configuration
koda
parents: 7705
diff changeset
   102
if (CMAKE_BUILD_TYPE)
631852904cee only accept RELASE and DEBUG build type configuration
koda
parents: 7705
diff changeset
   103
    string (TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
631852904cee only accept RELASE and DEBUG build type configuration
koda
parents: 7705
diff changeset
   104
    if ( NOT( (CMAKE_BUILD_TYPE MATCHES "RELEASE") OR (CMAKE_BUILD_TYPE MATCHES "DEBUG") ) )
8614
5f74a047cf2c drop useless option, automatically set revision and debug info
koda
parents: 8613
diff changeset
   105
        set (CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Build type (Debug/Release)" FORCE)
7709
631852904cee only accept RELASE and DEBUG build type configuration
koda
parents: 7705
diff changeset
   106
        message (STATUS "Unknown build type, using default (${default_build_type})")
631852904cee only accept RELASE and DEBUG build type configuration
koda
parents: 7705
diff changeset
   107
    endif ()
631852904cee only accept RELASE and DEBUG build type configuration
koda
parents: 7705
diff changeset
   108
else (CMAKE_BUILD_TYPE)
8614
5f74a047cf2c drop useless option, automatically set revision and debug info
koda
parents: 8613
diff changeset
   109
    set (CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Build type (Debug/Release)" FORCE)
7709
631852904cee only accept RELASE and DEBUG build type configuration
koda
parents: 7705
diff changeset
   110
endif (CMAKE_BUILD_TYPE)
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2573
diff changeset
   111
8614
5f74a047cf2c drop useless option, automatically set revision and debug info
koda
parents: 8613
diff changeset
   112
9152
c884e40dca9e move compiler checks in a separate cmake module
koda
parents: 9151
diff changeset
   113
#perform safe check that enable/disable compilation features
c884e40dca9e move compiler checks in a separate cmake module
koda
parents: 9151
diff changeset
   114
include(${CMAKE_MODULE_PATH}/compilerchecks.cmake)
c884e40dca9e move compiler checks in a separate cmake module
koda
parents: 9151
diff changeset
   115
7944
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   116
#set default flags values for all projects (unless MINIMAL_FLAGS is true)
8347
716c05f19401 GCI2012: CMake List Append
Willie Zhu
parents: 8333
diff changeset
   117
if(NOT ${MINIMAL_FLAGS})
8348
c039ac6f33e0 don't discard older cmake_c_flags
koda
parents: 8347
diff changeset
   118
    set(CMAKE_C_FLAGS "-pipe ${CMAKE_C_FLAGS}")
c039ac6f33e0 don't discard older cmake_c_flags
koda
parents: 8347
diff changeset
   119
    set(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer ${CMAKE_C_FLAGS_RELEASE}")
c039ac6f33e0 don't discard older cmake_c_flags
koda
parents: 8347
diff changeset
   120
    set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG ${CMAKE_C_FLAGS_DEBUG}")
7944
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   121
    set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   122
    set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   123
    set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   124
else()
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   125
    #CMake adds a lot of additional configuration flags, so let's clear them up
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   126
    set(CMAKE_C_FLAGS_RELEASE "")
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   127
    set(CMAKE_C_FLAGS_DEBUG "-Wall -DDEBUG")
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   128
    set(CMAKE_CXX_FLAGS_RELEASE "")
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   129
    set(CMAKE_CXX_FLAGS_DEBUG "-Wall -DDEBUG")
a94f4ef5ba2b play nicer with system flags
hasufell
parents: 7933
diff changeset
   130
endif()
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2573
diff changeset
   131
7397
833fc211ca2d allow FPFLAGS and GHFLAGS only in cmakes able to support them
koda
parents: 7264
diff changeset
   132
#parse additional parameters
833fc211ca2d allow FPFLAGS and GHFLAGS only in cmakes able to support them
koda
parents: 7264
diff changeset
   133
if(FPFLAGS OR GHFLAGS)
9151
1d2df388fcc6 simplify cmake message syntax a little bit
koda
parents: 9150
diff changeset
   134
    if(CMAKE_VERSION VERSION_GREATER "2.6")
7705
15f5d3cd35c6 force a DEBUG build when HW_DEV is true, some CMakeLists.txt cleanup/commenting
koda
parents: 7704
diff changeset
   135
        separate_arguments(fpflags_parsed UNIX_COMMAND ${FPFLAGS})
15f5d3cd35c6 force a DEBUG build when HW_DEV is true, some CMakeLists.txt cleanup/commenting
koda
parents: 7704
diff changeset
   136
        separate_arguments(ghflags_parsed UNIX_COMMAND ${GHFLAGS})
9104
5cf87143b188 wow binary logic ftw
koda
parents: 9096
diff changeset
   137
    else()
9151
1d2df388fcc6 simplify cmake message syntax a little bit
koda
parents: 9150
diff changeset
   138
        message("*** FPFLAGS and GHFLAGS are available only when using CMake >= 2.8 ***")
7397
833fc211ca2d allow FPFLAGS and GHFLAGS only in cmakes able to support them
koda
parents: 7264
diff changeset
   139
    endif()
833fc211ca2d allow FPFLAGS and GHFLAGS only in cmakes able to support them
koda
parents: 7264
diff changeset
   140
endif()
833fc211ca2d allow FPFLAGS and GHFLAGS only in cmakes able to support them
koda
parents: 7264
diff changeset
   141
8707
404c18aed69f alignment
koda
parents: 8706
diff changeset
   142
list(APPEND pascal_flags ${fpflags_parsed}            # user flags
404c18aed69f alignment
koda
parents: 8706
diff changeset
   143
                 "-B"                                 # compile all units
404c18aed69f alignment
koda
parents: 8706
diff changeset
   144
                 "-vm4079,4080,4081"                  # fpc verbosity output format
404c18aed69f alignment
koda
parents: 8706
diff changeset
   145
                 "-FE${PROJECT_BINARY_DIR}/bin"       # fpc binaries output directory
8706
9f5df5dc44a0 introducing the bestest flag of all
koda
parents: 8705
diff changeset
   146
                 "-FU${PROJECT_BINARY_DIR}/hedgewars" # fpc units output directory
8707
404c18aed69f alignment
koda
parents: 8706
diff changeset
   147
                 "-Fl${PROJECT_BINARY_DIR}/bin"       # fpc linking directory (win/unix)
404c18aed69f alignment
koda
parents: 8706
diff changeset
   148
                 "-Fi${PROJECT_BINARY_DIR}/hedgewars" # fpc .inc path (for out of source builds)
404c18aed69f alignment
koda
parents: 8706
diff changeset
   149
                 "-k-L${PROJECT_BINARY_DIR}/bin"      # ld linking directory (unix/osx)
404c18aed69f alignment
koda
parents: 8706
diff changeset
   150
                 "-Cs2000000"                         # stack size
404c18aed69f alignment
koda
parents: 8706
diff changeset
   151
                 "-vewnq"                             # fpc output verbosity
404c18aed69f alignment
koda
parents: 8706
diff changeset
   152
                 "-dDEBUGFILE"                        # macro for engine output
8283
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
   153
                 )
8707
404c18aed69f alignment
koda
parents: 8706
diff changeset
   154
list(APPEND haskell_flags ${ghflags_parsed} # user flags
404c18aed69f alignment
koda
parents: 8706
diff changeset
   155
                 "-O2"                      # optimise for faster code
8644
62756eb6fe9c typo and doc
koda
parents: 8642
diff changeset
   156
                 )
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2573
diff changeset
   157
8614
5f74a047cf2c drop useless option, automatically set revision and debug info
koda
parents: 8613
diff changeset
   158
7705
15f5d3cd35c6 force a DEBUG build when HW_DEV is true, some CMakeLists.txt cleanup/commenting
koda
parents: 7704
diff changeset
   159
#get BUILD_TYPE and enable/disable optimisation
8279
c03d64969112 less linking needed, raise minimum_osx_version when videorec is enabled
koda
parents: 8272
diff changeset
   160
message(STATUS "Using ${CMAKE_BUILD_TYPE} configuration")
7709
631852904cee only accept RELASE and DEBUG build type configuration
koda
parents: 7705
diff changeset
   161
if(CMAKE_BUILD_TYPE MATCHES "DEBUG")
8707
404c18aed69f alignment
koda
parents: 8706
diff changeset
   162
    list(APPEND pascal_flags "-O-" # disable all optimisations
404c18aed69f alignment
koda
parents: 8706
diff changeset
   163
                             "-g"  # enable debug symbols
404c18aed69f alignment
koda
parents: 8706
diff changeset
   164
                             "-gl" # add line info to bt
404c18aed69f alignment
koda
parents: 8706
diff changeset
   165
                             "-gv" # allow valgrind
8555
342f7af2eea5 moar docs update
koda
parents: 8549
diff changeset
   166
                             )
8707
404c18aed69f alignment
koda
parents: 8706
diff changeset
   167
    list(APPEND haskell_flags "-Wall"       # all warnings
404c18aed69f alignment
koda
parents: 8706
diff changeset
   168
                              "-debug"      # debug mode
404c18aed69f alignment
koda
parents: 8706
diff changeset
   169
                              "-dcore-lint" # internal sanity check
8644
62756eb6fe9c typo and doc
koda
parents: 8642
diff changeset
   170
                              )
7705
15f5d3cd35c6 force a DEBUG build when HW_DEV is true, some CMakeLists.txt cleanup/commenting
koda
parents: 7704
diff changeset
   171
else()
8707
404c18aed69f alignment
koda
parents: 8706
diff changeset
   172
    list(APPEND pascal_flags "-Os" # optimise for size
404c18aed69f alignment
koda
parents: 8706
diff changeset
   173
                             "-Xs" # strip binary
404c18aed69f alignment
koda
parents: 8706
diff changeset
   174
                             "-Si" # turn on inlining
8555
342f7af2eea5 moar docs update
koda
parents: 8549
diff changeset
   175
                             )
8707
404c18aed69f alignment
koda
parents: 8706
diff changeset
   176
    list(APPEND haskell_flags "-w" # no warnings
8644
62756eb6fe9c typo and doc
koda
parents: 8642
diff changeset
   177
                              )
7705
15f5d3cd35c6 force a DEBUG build when HW_DEV is true, some CMakeLists.txt cleanup/commenting
koda
parents: 7704
diff changeset
   178
endif()
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2573
diff changeset
   179
8686
d303da4568b7 introduce find_package_or_fail/disable to group together similar cmake code
koda
parents: 8683
diff changeset
   180
include(${CMAKE_MODULE_PATH}/utils.cmake)
2606
ed687a8d081f updated build files for macosx and optimization system
koda
parents: 2573
diff changeset
   181
7993
5b5083dc6837 split WEBGL and NOPASCAL cmake options
koda
parents: 7973
diff changeset
   182
#Haskell compiler discovery (for server and engine in c)
5b5083dc6837 split WEBGL and NOPASCAL cmake options
koda
parents: 7973
diff changeset
   183
if((NOT NOSERVER) OR NOPASCAL)
7220
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   184
    if(GHC)
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   185
        set(ghc_executable ${GHC})
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   186
    else()
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   187
        find_program(ghc_executable ghc)
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   188
    endif()
5053
a767954cfa03 this should help people hacking the cmake files
koda
parents: 4904
diff changeset
   189
7220
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   190
    if(ghc_executable)
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   191
        exec_program(${ghc_executable} ARGS "-V" OUTPUT_VARIABLE ghc_version_long)
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   192
        string(REGEX REPLACE ".*([0-9]+\\.[0-9]+\\.[0-9]+)" "\\1" ghc_version "${ghc_version_long}")
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   193
        message(STATUS "Found GHC: ${ghc_executable} (version ${ghc_version})")
7220
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   194
    else()
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   195
        message(STATUS "Could NOT find GHC, needed by gameServer and pas2c")
7220
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   196
    endif()
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   197
endif()
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   198
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   199
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   200
#check gameServer
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   201
if((ghc_executable) AND (NOT NOSERVER) AND (NOT WEBGL))
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   202
    set(HAVE_NETSERVER true)
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   203
    add_subdirectory(gameServer)
7223
b554726ff468 uniform NOPNG and NOSERVER cmake symbols
koda
parents: 7220
diff changeset
   204
else()
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   205
    message(STATUS "Skipping gameServer target")
7220
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   206
    set(HAVE_NETSERVER false)
7223
b554726ff468 uniform NOPNG and NOSERVER cmake symbols
koda
parents: 7220
diff changeset
   207
endif()
1415
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1370
diff changeset
   208
7705
15f5d3cd35c6 force a DEBUG build when HW_DEV is true, some CMakeLists.txt cleanup/commenting
koda
parents: 7704
diff changeset
   209
15f5d3cd35c6 force a DEBUG build when HW_DEV is true, some CMakeLists.txt cleanup/commenting
koda
parents: 7704
diff changeset
   210
#lua discovery
7031
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 7030
diff changeset
   211
find_package(Lua)
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   212
if(LUA_FOUND AND (NOT WEBGL))
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
   213
    message(STATUS "Found LUA: ${LUA_DEFAULT}")
7223
b554726ff468 uniform NOPNG and NOSERVER cmake symbols
koda
parents: 7220
diff changeset
   214
else()
7993
5b5083dc6837 split WEBGL and NOPASCAL cmake options
koda
parents: 7973
diff changeset
   215
    message(STATUS "Using internal LUA library")
7220
dfe678f129e4 sed 's/\t/ /g' CMakeLists.txt
koda
parents: 7114
diff changeset
   216
    add_subdirectory(misc/liblua)
8093
2286a39140da moar cmake cleanup, use message(WARNING ...) where appropriate
koda
parents: 8090
diff changeset
   217
    #linking with liblua.a requires system readline
8347
716c05f19401 GCI2012: CMake List Append
Willie Zhu
parents: 8333
diff changeset
   218
    list(APPEND pascal_flags "-k${EXECUTABLE_OUTPUT_PATH}/lib${LUA_LIBRARY}.a" "-k-lreadline")
7031
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 7030
diff changeset
   219
endif()
7223
b554726ff468 uniform NOPNG and NOSERVER cmake symbols
koda
parents: 7220
diff changeset
   220
7705
15f5d3cd35c6 force a DEBUG build when HW_DEV is true, some CMakeLists.txt cleanup/commenting
koda
parents: 7704
diff changeset
   221
8544
d610e692e2f6 perform a version check before including physfs (maybe there is a better place for this?) and allow overriding automagic search
koda
parents: 8540
diff changeset
   222
#physfs discovery
9096
b3041025c271 fix the cmake flag PHYSFS_SYSTEM being called SYSTEM_PHYSFS in the code
sheepluva
parents: 9091
diff changeset
   223
if (${PHYSFS_SYSTEM})
8549
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   224
    if (NOT PHYSFS_LIBRARY OR NOT PHYSFS_INCLUDE_DIR)
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   225
        find_package(PhysFS)
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   226
    endif()
8544
d610e692e2f6 perform a version check before including physfs (maybe there is a better place for this?) and allow overriding automagic search
koda
parents: 8540
diff changeset
   227
8549
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   228
    find_file(physfs_h physfs.h ${PHYSFS_INCLUDE_DIR})
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   229
    if(physfs_h)
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   230
        file(STRINGS ${physfs_h} physfs_majorversion REGEX "PHYSFS_VER_MAJOR[\t' ']+[0-9]+")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   231
        file(STRINGS ${physfs_h} physfs_minorversion REGEX "PHYSFS_VER_MINOR[\t' ']+[0-9]+")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   232
        file(STRINGS ${physfs_h} physfs_patchversion REGEX "PHYSFS_VER_PATCH[\t' ']+[0-9]+")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   233
        string(REGEX MATCH "([0-9]+)" physfs_majorversion "${physfs_majorversion}")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   234
        string(REGEX MATCH "([0-9]+)" physfs_minorversion "${physfs_minorversion}")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   235
        string(REGEX MATCH "([0-9]+)" physfs_patchversion "${physfs_patchversion}")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   236
        set(physfs_detected_ver "${physfs_majorversion}.${physfs_minorversion}.${physfs_patchversion}")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   237
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   238
        if (physfs_detected_ver VERSION_LESS "2.1.0")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   239
            message(FATAL_ERROR "PhysFS version is too old (dected ${physfs_detected_ver}, required 2.1.0)")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   240
            set(physfs_too_old true)
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   241
        endif()
8544
d610e692e2f6 perform a version check before including physfs (maybe there is a better place for this?) and allow overriding automagic search
koda
parents: 8540
diff changeset
   242
    endif()
d610e692e2f6 perform a version check before including physfs (maybe there is a better place for this?) and allow overriding automagic search
koda
parents: 8540
diff changeset
   243
8549
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   244
    if (NOT PHYSFS_LIBRARY OR NOT PHYSFS_INCLUDE_DIR)
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   245
        message(FATAL_ERROR "Missing PhysFS! Rerun cmake with -DPHYSFS_SYSTEM=off to build the internal version")
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   246
    endif()
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   247
else()
8528
ffd71e99a4f0 and now compile and link properly
koda
parents: 8522
diff changeset
   248
    message(STATUS "PhysFS will be provided by the bundled sources")
8549
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   249
    set(physfs_output_name "hw_physfs")
8528
ffd71e99a4f0 and now compile and link properly
koda
parents: 8522
diff changeset
   250
    add_subdirectory(misc/libphysfs)
8558
e96bf10216ef on windows fpc-linking is the funniest of all
koda
parents: 8555
diff changeset
   251
    #-XLA is a beta fpc flag that renames libraries before passing them to the linker
e96bf10216ef on windows fpc-linking is the funniest of all
koda
parents: 8555
diff changeset
   252
    #we also have to pass PHYSFS_INTERNAL to satisfy windows runtime requirements
e96bf10216ef on windows fpc-linking is the funniest of all
koda
parents: 8555
diff changeset
   253
    #(should be harmless on other platforms)
e96bf10216ef on windows fpc-linking is the funniest of all
koda
parents: 8555
diff changeset
   254
    list(APPEND pascal_flags "-XLAphysfs=${physfs_output_name}" "-dPHYSFS_INTERNAL")
8528
ffd71e99a4f0 and now compile and link properly
koda
parents: 8522
diff changeset
   255
endif()
8549
af104e59ea8e due to popular demand, add a compile time switch to manually select whether to build the internal physfs (default) or not
koda
parents: 8544
diff changeset
   256
8688
88a6114a318c even more wrapping with find_package_or_disable_msg
koda
parents: 8687
diff changeset
   257
find_package_or_disable_msg(FFMPEG NOVIDEOREC "Video recording will not be built")
8666
1652c1d9adc8 rework ffmpeg/libav/videorec linking and their cmake discovery
koda
parents: 8665
diff changeset
   258
8671
a9957b7797f3 write FindGHC.cmake for haskell stuff
koda
parents: 8669
diff changeset
   259
#physfs helper library
8528
ffd71e99a4f0 and now compile and link properly
koda
parents: 8522
diff changeset
   260
add_subdirectory(misc/libphyslayer)
8283
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
   261
7993
5b5083dc6837 split WEBGL and NOPASCAL cmake options
koda
parents: 7973
diff changeset
   262
if(NOPASCAL)
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   263
    if (NOT ghc_executable)
7993
5b5083dc6837 split WEBGL and NOPASCAL cmake options
koda
parents: 7973
diff changeset
   264
        message(FATAL_ERROR "A Haskell compiler is required to build engine in C")
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   265
    endif()
9130
4f4b71da3559 move sdlmain_osx aside in its own folder so its include path is not contaminated
koda
parents: 9127
diff changeset
   266
    add_subdirectory(hedgewars/sdlmain_osx)
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   267
    #pascal to c converter
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   268
    add_subdirectory(tools/pas2c)
7999
bb503cd46516 add a few cmakefiles for c engine and rtl
koda
parents: 7995
diff changeset
   269
    add_subdirectory(project_files/hwc)
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   270
else()
7993
5b5083dc6837 split WEBGL and NOPASCAL cmake options
koda
parents: 7973
diff changeset
   271
    #main pascal engine
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   272
    add_subdirectory(hedgewars)
8671
a9957b7797f3 write FindGHC.cmake for haskell stuff
koda
parents: 8669
diff changeset
   273
endif()
a9957b7797f3 write FindGHC.cmake for haskell stuff
koda
parents: 8669
diff changeset
   274
7993
5b5083dc6837 split WEBGL and NOPASCAL cmake options
koda
parents: 7973
diff changeset
   275
if(WEBGL)
5b5083dc6837 split WEBGL and NOPASCAL cmake options
koda
parents: 7973
diff changeset
   276
    #WEBGL deps
8096
453917e94e55 updated branch
koda
parents: 8044 8093
diff changeset
   277
else(WEBGL)
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   278
    #Android related build scripts
8833
c13ebed437cb update webgl branch
koda
parents: 8450 8734
diff changeset
   279
    #TODO: when ANDROID, LIBENGINE should be set
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   280
    if(ANDROID)
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   281
        add_subdirectory(project_files/Android-build)
8833
c13ebed437cb update webgl branch
koda
parents: 8450 8734
diff changeset
   282
    else(ANDROID)
7973
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   283
        add_subdirectory(bin)
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   284
        add_subdirectory(QTfrontend)
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   285
        add_subdirectory(share)
afb67e34a6b5 add CMakeFile for pas2c, add WEBGL config option
koda
parents: 7933
diff changeset
   286
        add_subdirectory(tools)
8833
c13ebed437cb update webgl branch
koda
parents: 8450 8734
diff changeset
   287
    endif(ANDROID)
8096
453917e94e55 updated branch
koda
parents: 8044 8093
diff changeset
   288
endif(WEBGL)
584
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   289
9091
bafadc6b4516 change cpack configuration file name so that it's not excluded by 'make package_source'
koda
parents: 9086
diff changeset
   290
include(${CMAKE_MODULE_PATH}/cpackvars.cmake)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
   291