hedgewars/CMakeLists.txt
changeset 8164 b12634f2e1b2
parent 8162 b97a17bf89ec
child 8166 5bc0fc0bab4d
equal deleted inserted replaced
8162:b97a17bf89ec 8164:b12634f2e1b2
     9 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)
    10 
    10 
    11 #SOURCE AND PROGRAMS SECTION
    11 #SOURCE AND PROGRAMS SECTION
    12 set(hwengine_project ${hedgewars_SOURCE_DIR}/hedgewars/hwengine.pas)
    12 set(hwengine_project ${hedgewars_SOURCE_DIR}/hedgewars/hwengine.pas)
    13 set(engine_output_name "hwengine")
    13 set(engine_output_name "hwengine")
    14 SET(REQUIRED_FPC_VERSION 2.2)
    14 set(required_fpc_version 2.2)
    15 
    15 
    16 set(engine_sources
    16 set(engine_sources
    17     ${hwengine_project}
    17     ${hwengine_project}
    18     LuaPas.pas
    18     LuaPas.pas
    19     PNGh.pas
    19     PNGh.pas
   101     endif (APPLE)
   101     endif (APPLE)
   102 endif(BUILD_ENGINE_LIBRARY)
   102 endif(BUILD_ENGINE_LIBRARY)
   103 
   103 
   104 
   104 
   105 # Check Freepascal version
   105 # Check Freepascal version
   106 FIND_PACKAGE(Freepascal)
   106 find_package(Freepascal)
   107 
   107 
   108 IF (FPC_VERSION VERSION_GREATER REQUIRED_FPC_VERSION
   108 if (NOT APPLE)
   109     OR FPC_VERSION VERSION_EQUAL REQUIRED_FPC_VERSION)
   109     if (FPC_VERSION VERSION_LESS required_fpc_version)
   110     MESSAGE(STATUS "Found FPC: ${FPC_EXECUTABLE} (version ${FPC_VERSION})")
   110         message(FATAL_ERROR "Necessary FPC version not found (version >= ${required_fpc_version} required)")
   111 ELSEIF (APPLE AND FPC_VERSION VERSION_LESS 2.6)
   111     endif()
   112     MESSAGE(FATAL_ERROR "Necessary FPC version not found (version >= 2.6 required)")
   112 elseif (APPLE)
   113 ELSE()
   113     if (FPC_VERSION VERSION_LESS 2.6)
   114     MESSAGE(FATAL_ERROR "Necessary FPC version not found (version >= ${REQUIRED_FPC_VERSION} required)")
   114         message(FATAL_ERROR "Necessary FPC version not found (version >= 2.6 required)")
   115 ENDIF()
   115     endif()
   116 
   116 endif()
   117 
   117 
   118 message(STATUS "Checking whether linker supports noexecstack flag")
   118 message(STATUS "Found FPC: ${FPC_EXECUTABLE} (version ${FPC_VERSION})")
   119 set(noexecstack_flags "-k-z" "-knoexecstack")
   119 
   120 file(WRITE ${EXECUTABLE_OUTPUT_PATH}/checkstack.pas "begin end.")
       
   121 
       
   122 execute_process(COMMAND ${fpc_executable} ${noexecstack_flags} checkstack.pas
       
   123     WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}
       
   124     RESULT_VARIABLE testnoexecstack
       
   125     OUTPUT_QUIET ERROR_QUIET
       
   126     )
       
   127 
       
   128 if(${testnoexecstack})
       
   129     set (noexecstack_flags "")
       
   130     message(STATUS "Checking whether linker supports noexecstack flag -- no")
       
   131 else(${testnoexecstack})
       
   132     message(STATUS "Checking whether linker supports noexecstack flag -- yes")
       
   133 endif(${testnoexecstack})
       
   134 
   120 
   135 #DEPENDECIES AND EXECUTABLES SECTION
   121 #DEPENDECIES AND EXECUTABLES SECTION
   136 if(APPLE)
   122 if(APPLE)
   137     string(REGEX MATCH "[pP][pP][cC]+" powerpc_build "${CMAKE_OSX_ARCHITECTURES}")
   123     string(REGEX MATCH "[pP][pP][cC]+" powerpc_build "${CMAKE_OSX_ARCHITECTURES}")
   138     string(REGEX MATCH "[iI]386+" i386_build "${CMAKE_OSX_ARCHITECTURES}")
   124     string(REGEX MATCH "[iI]386+" i386_build "${CMAKE_OSX_ARCHITECTURES}")