hedgewars/CMakeLists.txt
changeset 7031 d5ea24399a48
parent 7029 efbe6400fc24
child 7109 af3a43a46f21
equal deleted inserted replaced
7030:09984acadece 7031:d5ea24399a48
     1 find_package(SDL)
     1 find_package(SDL)
     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 find_package(Lua)
       
     7 
     6 
     8 include(${CMAKE_MODULE_PATH}/FindSDL_Extras.cmake)
     7 include(${CMAKE_MODULE_PATH}/FindSDL_Extras.cmake)
     9 
     8 
    10 configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
     9 configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
    11 
    10 
   186         set(lipo_args_list "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}" ${lipo_args_list})
   185         set(lipo_args_list "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}" ${lipo_args_list})
   187         add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}"
   186         add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}"
   188             COMMAND "${pascal_compiler}"
   187             COMMAND "${pascal_compiler}"
   189             ARGS ${pascal_compiler_flags} -ohwengine.${build_arch} -P${build_arch}
   188             ARGS ${pascal_compiler_flags} -ohwengine.${build_arch} -P${build_arch}
   190             MAIN_DEPENDENCY ${hwengine_project}
   189             MAIN_DEPENDENCY ${hwengine_project}
   191             DEPENDS ${engine_sources} SDLmain lua
   190             DEPENDS ${engine_sources} SDLmain
   192             )
   191             )
   193         add_custom_target(hwengine.${build_arch} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}")
   192         add_custom_target(hwengine.${build_arch} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}")
   194     endforeach()
   193     endforeach()
   195 
   194 
   196     add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}"
   195     add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}"
   200         )
   199         )
   201 ENDIF()
   200 ENDIF()
   202 
   201 
   203 
   202 
   204 add_custom_target(${engine_output_name} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}")
   203 add_custom_target(${engine_output_name} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}")
   205 IF(NOT APPLE)
   204 
       
   205 #when system Lua is not found we need to compile it before engine
       
   206 if(NOT ${LUA_FOUND})
       
   207     add_dependencies(${engine_output_name} lua)
       
   208 endif()
       
   209 
       
   210 #this command is a workaround to some inlining issues present in older
       
   211 # FreePascal versions and fixed in 2.6, That version is mandatory on OSX,
       
   212 # hence the command is not needed there
       
   213 if(NOT APPLE)
   206     add_custom_target(ENGINECLEAN COMMAND ${CMAKE_BUILD_TOOL} "clean" "${PROJECT_BINARY_DIR}" "${hedgewars_SOURCE_DIR}/hedgewars")
   214     add_custom_target(ENGINECLEAN COMMAND ${CMAKE_BUILD_TOOL} "clean" "${PROJECT_BINARY_DIR}" "${hedgewars_SOURCE_DIR}/hedgewars")
   207     add_dependencies(${engine_output_name} ENGINECLEAN)
   215     add_dependencies(${engine_output_name} ENGINECLEAN)
   208 ENDIF()
   216 endif()
   209 
   217 
   210 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
   218 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
   211 
   219