hedgewars/CMakeLists.txt
changeset 8702 a28966180a29
parent 8697 9624836094de
child 8752 48cf2ccb83c6
child 8830 343d3f0d6a86
equal deleted inserted replaced
8701:b99c49f78f56 8702:a28966180a29
    15 if(HAVE_IMGINIT)
    15 if(HAVE_IMGINIT)
    16     list(APPEND pascal_flags "-dSDL_IMAGE_NEWER")
    16     list(APPEND pascal_flags "-dSDL_IMAGE_NEWER")
    17 endif()
    17 endif()
    18 
    18 
    19 
    19 
    20 configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
    20 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
    21 
    21 
    22 #SOURCE AND PROGRAMS SECTION
    22 #SOURCE AND PROGRAMS SECTION
    23 if(${BUILD_ENGINE_LIBRARY})
    23 if(${BUILD_ENGINE_LIBRARY})
    24     set(engine_output_name "${CMAKE_SHARED_LIBRARY_PREFIX}hwengine${CMAKE_SHARED_LIBRARY_SUFFIX}")
    24     set(engine_output_name "${CMAKE_SHARED_LIBRARY_PREFIX}hwengine${CMAKE_SHARED_LIBRARY_SUFFIX}")
    25     set(hwengine_project ${hedgewars_SOURCE_DIR}/hedgewars/hwLibrary.pas)
    25     set(hwengine_project hwLibrary.pas)
    26 else()
    26 else()
    27     set(engine_output_name "hwengine${CMAKE_EXECUTABLE_SUFFIX}")
    27     set(engine_output_name "hwengine${CMAKE_EXECUTABLE_SUFFIX}")
    28     set(hwengine_project ${hedgewars_SOURCE_DIR}/hedgewars/hwengine.pas)
    28     set(hwengine_project hwengine.pas)
    29 endif()
    29 endif()
    30 
    30 
    31 if (APPLE)
    31 if (APPLE)
    32     set(required_fpc_version 2.6)
    32     set(required_fpc_version 2.6)
    33 else()
    33 else()
   178     if(UNIX)
   178     if(UNIX)
   179         set(SAFE_BUILD_TOOL $(MAKE))
   179         set(SAFE_BUILD_TOOL $(MAKE))
   180     else()
   180     else()
   181         set(SAFE_BUILD_TOOL ${CMAKE_BUILD_TOOL})
   181         set(SAFE_BUILD_TOOL ${CMAKE_BUILD_TOOL})
   182     endif()
   182     endif()
   183     add_custom_target(ENGINECLEAN COMMAND ${SAFE_BUILD_TOOL} "clean" "${PROJECT_BINARY_DIR}" "${hedgewars_SOURCE_DIR}/hedgewars")
   183     add_custom_target(ENGINECLEAN COMMAND ${SAFE_BUILD_TOOL} "clean" "${PROJECT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
   184 endif()
   184 endif()
   185 
   185 
   186 
   186 
   187 if(${FFMPEG_FOUND})
   187 if(${FFMPEG_FOUND})
   188     # TODO: this check is only for SDL < 2
   188     # TODO: this check is only for SDL < 2
   208 if(NOT APPLE)
   208 if(NOT APPLE)
   209     #here is the command for standard executables or for shared library
   209     #here is the command for standard executables or for shared library
   210     add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}"
   210     add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}"
   211         COMMAND "${FREEPASCAL_EXECUTABLE}"
   211         COMMAND "${FREEPASCAL_EXECUTABLE}"
   212         ARGS ${fpc_flags} -o${engine_output_name}
   212         ARGS ${fpc_flags} -o${engine_output_name}
   213         MAIN_DEPENDENCY ${hwengine_project}
       
   214         DEPENDS ${engine_sources}
   213         DEPENDS ${engine_sources}
       
   214         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
   215         )
   215         )
   216 else()
   216 else()
   217     #these are the dependencies for building a universal binary on Mac OS X
   217     #these are the dependencies for building a universal binary on Mac OS X
   218     foreach (build_arch ${powerpc_build} ${i386_build} ${x86_64_build})
   218     foreach (build_arch ${powerpc_build} ${i386_build} ${x86_64_build})
   219         list(APPEND lipo_args_list "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}")
   219         list(APPEND lipo_args_list "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}")
   220         add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}"
   220         add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}"
   221             COMMAND "${FREEPASCAL_EXECUTABLE}"
   221             COMMAND "${FREEPASCAL_EXECUTABLE}"
   222             ARGS ${fpc_flags} -ohwengine.${build_arch} -P${build_arch}
   222             ARGS ${fpc_flags} -ohwengine.${build_arch} -P${build_arch}
   223             MAIN_DEPENDENCY ${hwengine_project}
       
   224             DEPENDS ${engine_sources}
   223             DEPENDS ${engine_sources}
       
   224             WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
   225             )
   225             )
   226         add_custom_target(hwengine.${build_arch} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}")
   226         add_custom_target(hwengine.${build_arch} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}")
   227         add_custom_command(TARGET hwengine.${build_arch} POST_BUILD
   227         add_custom_command(TARGET hwengine.${build_arch} POST_BUILD
   228             COMMAND "install_name_tool"
   228             COMMAND "install_name_tool"
   229             ARGS -id @executable_path/../Frameworks/${engine_output_name}
   229             ARGS -id @executable_path/../Frameworks/${engine_output_name}