2 find_package(SDL_image) |
2 find_package(SDL_image) |
3 find_package(SDL_net) |
3 find_package(SDL_net) |
4 find_package(SDL_ttf) |
4 find_package(SDL_ttf) |
5 find_package(SDL_mixer) |
5 find_package(SDL_mixer) |
6 |
6 |
7 include (CheckLibraryExists) |
7 include(CheckLibraryExists) |
|
8 include(${CMAKE_MODULE_PATH}/utils.cmake) |
8 |
9 |
9 |
10 |
10 enable_language(Pascal) |
11 enable_language(Pascal) |
11 add_flag_append(CMAKE_Pascal_FLAGS "-Cs2000000") |
12 add_flag_append(CMAKE_Pascal_FLAGS "-Cs2000000") |
12 add_flag_append(CMAKE_Pascal_FLAGS_DEBUG "-gv") |
13 add_flag_append(CMAKE_Pascal_FLAGS_DEBUG "-gv") |
81 uGearsUtils.pas |
82 uGearsUtils.pas |
82 uTeams.pas |
83 uTeams.pas |
83 |
84 |
84 #these interact with everything, so compile last |
85 #these interact with everything, so compile last |
85 uScript.pas |
86 uScript.pas |
86 hwengine.pas |
|
87 |
|
88 #we also have uTouch.pas |
|
89 options.inc |
|
90 ${CMAKE_CURRENT_BINARY_DIR}/config.inc |
|
91 ) |
87 ) |
92 |
88 |
93 |
|
94 include(${CMAKE_MODULE_PATH}/utils.cmake) |
|
95 |
89 |
96 if (${CMAKE_Pascal_COMPILER_VERSION} VERSION_LESS 2.2 OR # older versions are just ancient |
90 if (${CMAKE_Pascal_COMPILER_VERSION} VERSION_LESS 2.2 OR # older versions are just ancient |
97 (${CMAKE_Pascal_COMPILER_VERSION} VERSION_LESS 2.6 AND APPLE)) # because of 64bit and opengl bindings |
91 (${CMAKE_Pascal_COMPILER_VERSION} VERSION_LESS 2.6 AND APPLE)) # because of 64bit and opengl bindings |
98 message(FATAL_ERROR "Your FreePascal installation is too old (fpc ${CMAKE_Pascal_COMPILER_VERSION})!") |
92 message(FATAL_ERROR "Your FreePascal installation is too old (fpc ${CMAKE_Pascal_COMPILER_VERSION})!") |
99 elseif(CMAKE_Pascal_COMPILER_VERSION VERSION_GREATER 2.4) |
93 elseif(CMAKE_Pascal_COMPILER_VERSION VERSION_GREATER 2.4) |
169 |
163 |
170 #needs to be last |
164 #needs to be last |
171 add_definitions(-dDEBUGFILE) |
165 add_definitions(-dDEBUGFILE) |
172 |
166 |
173 |
167 |
174 # make source files objects depend on their predecessors in list |
168 # source files are with full path after this |
175 set(sourcefiles_sofar "${CMAKE_CURRENT_SOURCE_DIR}/options.inc" "${CMAKE_CURRENT_BINARY_DIR}/config.inc") |
169 set(sourcefiles_sofar "${CMAKE_CURRENT_SOURCE_DIR}/options.inc" "${CMAKE_CURRENT_BINARY_DIR}/config.inc") |
176 foreach(loop_var ${engine_sources}) |
170 foreach(loop_var ${engine_sources}) |
177 SET_SOURCE_FILES_PROPERTIES(${loop_var} PROPERTIES OBJECT_DEPENDS "${sourcefiles_sofar}") |
|
178 list(APPEND sourcefiles_sofar "${CMAKE_CURRENT_SOURCE_DIR}/${loop_var}") |
171 list(APPEND sourcefiles_sofar "${CMAKE_CURRENT_SOURCE_DIR}/${loop_var}") |
179 endforeach(loop_var) |
172 endforeach(loop_var) |
180 |
173 |
181 |
174 |
182 #SOURCE AND PROGRAMS SECTION |
175 #SOURCE AND PROGRAMS SECTION |
191 set(engine_output_name "${CMAKE_SHARED_LIBRARY_PREFIX}hwengine${CMAKE_SHARED_LIBRARY_SUFFIX}") |
184 set(engine_output_name "${CMAKE_SHARED_LIBRARY_PREFIX}hwengine${CMAKE_SHARED_LIBRARY_SUFFIX}") |
192 set(destination_dir ${target_library_install_dir}) |
185 set(destination_dir ${target_library_install_dir}) |
193 add_flag_prepend(CMAKE_Pascal_FLAGS "-o${LIBRARY_OUTPUT_PATH}/${engine_output_name}") |
186 add_flag_prepend(CMAKE_Pascal_FLAGS "-o${LIBRARY_OUTPUT_PATH}/${engine_output_name}") |
194 |
187 |
195 add_definitions(-dHWLIBRARY) |
188 add_definitions(-dHWLIBRARY) |
196 add_library(hwengine SHARED ${engine_sources} hwLibrary.pas) |
189 set_source_files_properties(hwLibrary.pas PROPERTIES OBJECT_DEPENDS "${sourcefiles_sofar}") |
|
190 add_library(hwengine SHARED hwLibrary.pas) |
197 else() |
191 else() |
198 # no need to change name here because target has same name |
192 # no need to change name here because target has same name |
199 set(engine_output_name "hwengine${CMAKE_EXECUTABLE_SUFFIX}") |
193 set(engine_output_name "hwengine${CMAKE_EXECUTABLE_SUFFIX}") |
200 set(destination_dir ${target_binary_install_dir}) |
194 set(destination_dir ${target_binary_install_dir}) |
201 add_executable(hwengine ${engine_sources}) |
195 set_source_files_properties(hwengine.pas PROPERTIES OBJECT_DEPENDS "${sourcefiles_sofar}") |
|
196 add_executable(hwengine hwengine.pas) |
202 endif() |
197 endif() |
203 |
198 |
204 #even though not actually used, this will trigger relink if any lib changes |
199 #even though not actually used, this will trigger relink if any lib changes |
205 target_link_libraries(hwengine ${HW_LINK_LIBS}) |
200 target_link_libraries(hwengine ${HW_LINK_LIBS}) |
206 |
201 |