author | koda |
Tue, 26 Mar 2013 01:13:45 +0100 | |
branch | cmake_pascal |
changeset 8846 | c156ac6ddc2b |
parent 8843 | 843a9a405542 |
child 8852 | 0576439ef859 |
permissions | -rw-r--r-- |
2420 | 1 |
find_package(SDL) |
2 |
find_package(SDL_image) |
|
3 |
find_package(SDL_net) |
|
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 | 6 |
|
8661
ac8dba27a3f1
replace sdl mixer/image version checking with something more robust
koda
parents:
8611
diff
changeset
|
7 |
include (CheckLibraryExists) |
8669
3f9853888d4f
user correct variable and slimmer test, version typos, .dll.a updated
koda
parents:
8666
diff
changeset
|
8 |
#Mix_Init/Mix_Quit from SDL_mixer 1.2.10 |
8664 | 9 |
check_library_exists(${SDLMIXER_LIBRARY} Mix_Init "" HAVE_MIXINIT) |
8669
3f9853888d4f
user correct variable and slimmer test, version typos, .dll.a updated
koda
parents:
8666
diff
changeset
|
10 |
#IMG_Init/IMG_Quit from SDL_image 1.2.8 |
8664 | 11 |
check_library_exists(${SDLIMAGE_LIBRARY} IMG_Init "" HAVE_IMGINIT) |
2672 | 12 |
|
8752
48cf2ccb83c6
with lot of hackery, use add_executable on pascal files, SUCCSS
koda
parents:
8702
diff
changeset
|
13 |
enable_language(Pascal) |
8702
a28966180a29
have fpc work in the right directory instead of passing the full path of the main module (avoids having full paths in debug build backtraces for the first module only)
koda
parents:
8697
diff
changeset
|
14 |
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc) |
8846
c156ac6ddc2b
set directories to be included externally, in the project file
koda
parents:
8843
diff
changeset
|
15 |
include_directories(${CMAKE_CURRENT_BINARY_DIR}) |
2406 | 16 |
|
8166
5bc0fc0bab4d
Refactor Freepascal module.
Bryan Dunsmore <dunsmoreb@gmail.com>
parents:
8164
diff
changeset
|
17 |
if (APPLE) |
5bc0fc0bab4d
Refactor Freepascal module.
Bryan Dunsmore <dunsmoreb@gmail.com>
parents:
8164
diff
changeset
|
18 |
set(required_fpc_version 2.6) |
5bc0fc0bab4d
Refactor Freepascal module.
Bryan Dunsmore <dunsmoreb@gmail.com>
parents:
8164
diff
changeset
|
19 |
else() |
5bc0fc0bab4d
Refactor Freepascal module.
Bryan Dunsmore <dunsmoreb@gmail.com>
parents:
8164
diff
changeset
|
20 |
set(required_fpc_version 2.2) |
5bc0fc0bab4d
Refactor Freepascal module.
Bryan Dunsmore <dunsmoreb@gmail.com>
parents:
8164
diff
changeset
|
21 |
endif() |
184 | 22 |
|
2786 | 23 |
set(engine_sources |
8761
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
24 |
SDLh.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
25 |
uSinTable.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
26 |
uFloat.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
27 |
uConsts.pas |
7730
2013733f9ca9
A bit more on the knife. Also add missing files to CMakeLists
nemo
parents:
7718
diff
changeset
|
28 |
LuaPas.pas |
2013733f9ca9
A bit more on the knife. Also add missing files to CMakeLists
nemo
parents:
7718
diff
changeset
|
29 |
PNGh.pas |
8761
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
30 |
uTypes.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
31 |
uUtils.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
32 |
uVariables.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
33 |
uMisc.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
34 |
uConsole.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
35 |
uDebug.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
36 |
uCommands.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
37 |
uInputHandler.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
38 |
uTextures.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
39 |
uRenderUtils.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
40 |
uRender.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
41 |
uCaptions.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
42 |
uLandTexture.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
43 |
uIO.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
44 |
uChat.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
45 |
uPhysFSLayer.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
46 |
uStore.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
47 |
uSound.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
48 |
uRandom.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
49 |
uLocale.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
50 |
uStats.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
51 |
uCursor.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
52 |
uVideoRec.pas |
7730
2013733f9ca9
A bit more on the knife. Also add missing files to CMakeLists
nemo
parents:
7718
diff
changeset
|
53 |
uAILandMarks.pas |
8761
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
54 |
adler32.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
55 |
uLandTemplates.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
56 |
uLandGraphics.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
57 |
uLandPainted.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
58 |
uLandOutline.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
59 |
uLandGenMaze.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
60 |
uLandObjects.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
61 |
uLand.pas |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
62 |
uAmmos.pas |
8761
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
63 |
|
8819 | 64 |
uAIMisc.pas |
65 |
uAIActions.pas |
|
66 |
uAI.pas |
|
67 |
uWorld.pas |
|
68 |
uVisualGears.pas |
|
69 |
uTeams.pas |
|
8761
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
70 |
|
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
71 |
uGearsList.pas |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
72 |
uCollisions.pas |
8761
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
73 |
uAIAmmoTests.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
74 |
uGears.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
75 |
uGame.pas |
4413 | 76 |
uCommandHandlers.pas |
7370
d50b874e7ee8
Introduce uGearsHandlers.pas, for now only part of cake handlers is moved there
unc0rr
parents:
7233
diff
changeset
|
77 |
uGearsHandlers.pas |
7592 | 78 |
uGearsHandlersRope.pas |
7730
2013733f9ca9
A bit more on the knife. Also add missing files to CMakeLists
nemo
parents:
7718
diff
changeset
|
79 |
uGearsHedgehog.pas |
4386 | 80 |
uGearsRender.pas |
7592 | 81 |
uGearsUtils.pas |
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
82 |
uScript.pas |
8761
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
83 |
hwengine.pas |
801cf78707f2
partial reodering of units so that dependency tracking is done with cmake
koda
parents:
8756
diff
changeset
|
84 |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
85 |
GSHandlers.inc |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
86 |
VGSHandlers.inc |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
87 |
ArgParsers.inc |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
88 |
options.inc |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
89 |
${CMAKE_CURRENT_BINARY_DIR}/config.inc |
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
90 |
) |
220 | 91 |
|
7959 | 92 |
|
8686
d303da4568b7
introduce find_package_or_fail/disable to group together similar cmake code
koda
parents:
8669
diff
changeset
|
93 |
include(${CMAKE_MODULE_PATH}/utils.cmake) |
d303da4568b7
introduce find_package_or_fail/disable to group together similar cmake code
koda
parents:
8669
diff
changeset
|
94 |
|
d303da4568b7
introduce find_package_or_fail/disable to group together similar cmake code
koda
parents:
8669
diff
changeset
|
95 |
find_package_or_fail(FreePascal) |
d303da4568b7
introduce find_package_or_fail/disable to group together similar cmake code
koda
parents:
8669
diff
changeset
|
96 |
|
8665
3ff8694d9e22
rewritten findfreepascal, moved checkstack code elsewhere
koda
parents:
8664
diff
changeset
|
97 |
#when cmake-2.6 support is dropped, this ought to be inside FindFreePascal.cmake |
3ff8694d9e22
rewritten findfreepascal, moved checkstack code elsewhere
koda
parents:
8664
diff
changeset
|
98 |
if (FREEPASCAL_VERSION VERSION_LESS required_fpc_version) |
3ff8694d9e22
rewritten findfreepascal, moved checkstack code elsewhere
koda
parents:
8664
diff
changeset
|
99 |
message(FATAL_ERROR "Freepascal ${FREEPASCAL_VERSION} is too old, minimum version required is ${required_fpc_version}") |
8802
ed984e06b435
enable fpc inlining only in release mode only if using fpc > 2.6
koda
parents:
8798
diff
changeset
|
100 |
elseif(FREEPASCAL_VERSION VERSION_GREATER 2.4) |
ed984e06b435
enable fpc inlining only in release mode only if using fpc > 2.6
koda
parents:
8798
diff
changeset
|
101 |
#enable INLINE only with a recent version of fpc |
8821
e85ff6e298b5
adjust verbosity, move debug/release variables in the right section
koda
parents:
8819
diff
changeset
|
102 |
add_flag_prepend(CMAKE_Pascal_FLAGS_RELEASE -Si) |
8164
b12634f2e1b2
Move noexecstack flags to Freepascal module and refactor.
Bryan Dunsmore <dunsmoreb@gmail.com>
parents:
8162
diff
changeset
|
103 |
endif() |
476
a4e975f70b60
check for noexecstack linker compatibility (MacOS linker)
displacer
parents:
433
diff
changeset
|
104 |
|
a4e975f70b60
check for noexecstack linker compatibility (MacOS linker)
displacer
parents:
433
diff
changeset
|
105 |
|
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
|
106 |
#DEPENDECIES AND EXECUTABLES SECTION |
2652 | 107 |
if(APPLE) |
8837 | 108 |
if(CMAKE_OSX_ARCHITECTURES) |
109 |
#parse this system variable and adjust only the powerpc syntax to be compatible with -P |
|
110 |
string(REGEX MATCH "[pP][pP][cC]+" powerpc_build "${CMAKE_OSX_ARCHITECTURES}") |
|
111 |
string(REGEX MATCH "[iI]386+" i386_build "${CMAKE_OSX_ARCHITECTURES}") |
|
112 |
string(REGEX MATCH "[xX]86_64+" x86_64_build "${CMAKE_OSX_ARCHITECTURES}") |
|
113 |
if(powerpc_build) |
|
114 |
set(powerpc_build "powerpc") |
|
115 |
endif() |
|
116 |
elseif(CMAKE_SIZEOF_VOID_P MATCHES "8") |
|
117 |
#if that variable is not set check if we are on x86_64 and if so force it, else use default |
|
118 |
add_flag_append(CMAKE_Pascal_FLAGS -Px86_64) |
|
4357
a1fcfc341a52
Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents:
4158
diff
changeset
|
119 |
endif() |
2652 | 120 |
|
7708 | 121 |
#on OSX we need to provide the SDL_main() function when building as executable |
8823 | 122 |
if(NOT BUILD_ENGINE_LIBRARY) |
8804 | 123 |
add_subdirectory(sdlmain) |
8843 | 124 |
list(APPEND HW_LINK_LIBS SDLmain) |
8775
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
125 |
add_flag_append(CMAKE_Pascal_FLAGS -Fl${LIBRARY_OUTPUT_PATH}) |
7112
38c5d56c4d6e
rename a few internal cmake variables (for consistency and readability)
koda
parents:
7109
diff
changeset
|
126 |
endif() |
38c5d56c4d6e
rename a few internal cmake variables (for consistency and readability)
koda
parents:
7109
diff
changeset
|
127 |
endif(APPLE) |
38c5d56c4d6e
rename a few internal cmake variables (for consistency and readability)
koda
parents:
7109
diff
changeset
|
128 |
|
8813
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
129 |
if(FFMPEG_FOUND) |
8811 | 130 |
add_subdirectory(avwrapper) |
8843 | 131 |
list(APPEND HW_LINK_LIBS avwrapper) |
8775
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
132 |
add_definitions(-dUSE_VIDEO_RECORDING) |
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
133 |
add_flag_append(CMAKE_Pascal_FLAGS -Fl${LIBRARY_OUTPUT_PATH}) |
7538 | 134 |
endif() |
7112
38c5d56c4d6e
rename a few internal cmake variables (for consistency and readability)
koda
parents:
7109
diff
changeset
|
135 |
|
8770
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8761
diff
changeset
|
136 |
find_package_or_disable_msg(PNG NOPNG "Screenshots will be saved in BMP") |
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8761
diff
changeset
|
137 |
if(PNG_FOUND) |
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8761
diff
changeset
|
138 |
get_filename_component(PNG_LIB_DIR ${PNG_LIBRARY} PATH) |
8775
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
139 |
add_definitions(-dPNG_SCREENSHOTS) |
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
140 |
add_flag_append(CMAKE_Pascal_FLAGS -Fl${PNG_LIB_DIR}) |
8770
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8761
diff
changeset
|
141 |
endif() |
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
|
142 |
|
8787 | 143 |
if(NOT LUA_FOUND) |
8843 | 144 |
list(APPEND HW_LINK_LIBS lua) |
8798 | 145 |
add_flag_append(CMAKE_Pascal_FLAGS -k${EXECUTABLE_OUTPUT_PATH}/lib${LUA_LIBRARY}.a) |
8787 | 146 |
#linking with liblua.a requires system readline |
8798 | 147 |
if(UNIX) |
148 |
add_flag_append(CMAKE_Pascal_FLAGS -k-lreadline) |
|
149 |
endif(UNIX) |
|
8787 | 150 |
endif() |
151 |
||
8775
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
152 |
if(NOT PHYSFS_FOUND) |
8843 | 153 |
add_definitions(-dPHYSFS_INTERNAL) |
154 |
list(APPEND HW_LINK_LIBS physfs) |
|
8775
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
155 |
#-XLA is a beta fpc flag that renames libraries before passing them to the linker |
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
156 |
#we also have to pass PHYSFS_INTERNAL to satisfy windows runtime requirements |
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
157 |
#(should be harmless on other platforms) |
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
158 |
add_flag_append(CMAKE_Pascal_FLAGS "-XLAphysfs=${physfs_output_name}") |
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
159 |
endif() |
8843 | 160 |
list(APPEND HW_LINK_LIBS physlayer) |
8813
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
161 |
|
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
162 |
if(HAVE_MIXINIT) |
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
163 |
add_definitions(-dSDL_MIXER_NEWER) |
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
164 |
endif(HAVE_MIXINIT) |
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
165 |
|
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
166 |
if(HAVE_IMGINIT) |
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
167 |
add_definitions(-dSDL_IMAGE_NEWER) |
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
168 |
endif(HAVE_IMGINIT) |
a932b10fc1d0
move a few checks so that add_defintions doesn't interfere
koda
parents:
8811
diff
changeset
|
169 |
|
8775
3cad01db0bae
apply the new macro add_flag_* to set pascal flags, apply add_definitions where appropriate, small cleanup
koda
parents:
8770
diff
changeset
|
170 |
add_definitions(-dDEBUGFILE) |
8823 | 171 |
|
172 |
#SOURCE AND PROGRAMS SECTION |
|
173 |
if(BUILD_ENGINE_LIBRARY) |
|
174 |
message(${WARNING} "Engine will be built as library (experimental)") |
|
175 |
if(APPLE AND current_macosx_version VERSION_GREATER "10.5") |
|
176 |
# due to compiler/linker issues on Max OS X 10.6 -k-no_order_inits is needed to avoid linking fail |
|
8840 | 177 |
add_flag_prepend(CMAKE_Pascal_FLAGS "-k-no_order_inits") |
8823 | 178 |
endif() |
179 |
||
180 |
#workaround for missing <TARGET> support during object generation |
|
181 |
set(engine_output_name "${CMAKE_SHARED_LIBRARY_PREFIX}hwengine${CMAKE_SHARED_LIBRARY_SUFFIX}") |
|
182 |
set(destination_dir ${target_library_install_dir}) |
|
8827 | 183 |
add_flag_prepend(CMAKE_Pascal_FLAGS "-o${LIBRARY_OUTPUT_PATH}/${engine_output_name}") |
8823 | 184 |
|
185 |
add_definitions(-dHWLIBRARY) |
|
186 |
add_library(hwengine SHARED ${engine_sources} hwLibrary.pas) |
|
187 |
else() |
|
188 |
# no need to change name here because target has same name |
|
189 |
set(engine_output_name "hwengine${CMAKE_EXECUTABLE_SUFFIX}") |
|
190 |
set(destination_dir ${target_binary_install_dir}) |
|
191 |
add_executable(hwengine ${engine_sources}) |
|
192 |
endif() |
|
193 |
||
8843 | 194 |
target_link_libraries(hwengine ${HW_LINK_LIBS}) |
184 | 195 |
|
8798 | 196 |
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}" DESTINATION ${destination_dir}) |