CMakeLists.txt
branchwebgl
changeset 9521 8054d9d775fd
parent 9282 92af50454cf2
parent 9431 0f5961910e27
child 9950 2759212a27de
equal deleted inserted replaced
9282:92af50454cf2 9521:8054d9d775fd
    35 
    35 
    36 option(WEBGL "Enable WebGL build (implies NOPASCAL) [default: off]" OFF)
    36 option(WEBGL "Enable WebGL build (implies NOPASCAL) [default: off]" OFF)
    37 option(NOPASCAL "Compile hwengine as native C [default: off]" ${WEBGL})
    37 option(NOPASCAL "Compile hwengine as native C [default: off]" ${WEBGL})
    38 option(GL2 "Enable OpenGL 2 rendering [default: off]" OFF)
    38 option(GL2 "Enable OpenGL 2 rendering [default: off]" OFF)
    39 
    39 
    40 set(FPFLAGS "" CACHE STRING "Additional Freepascal flags")
       
    41 set(GHFLAGS "" CACHE STRING "Additional Haskell flags")
    40 set(GHFLAGS "" CACHE STRING "Additional Haskell flags")
    42 if(UNIX AND NOT APPLE)
    41 if(UNIX AND NOT APPLE)
    43     set(DATA_INSTALL_DIR "share/hedgewars" CACHE STRING "Resource folder path")
    42     set(DATA_INSTALL_DIR "share/hedgewars" CACHE STRING "Resource folder path")
    44 endif()
    43 endif()
    45 
    44 
    74 
    73 
    75 
    74 
    76 #perform safe check that enable/disable compilation features
    75 #perform safe check that enable/disable compilation features
    77 include(${CMAKE_MODULE_PATH}/compilerchecks.cmake)
    76 include(${CMAKE_MODULE_PATH}/compilerchecks.cmake)
    78 
    77 
    79 #set default flags values for all projects (unless MINIMAL_FLAGS is true)
    78 #set default compiler flags
    80 if(NOT ${MINIMAL_FLAGS})
    79 add_flag_append(CMAKE_C_FLAGS "-Wall -pipe -fPIC")
    81     set(CMAKE_C_FLAGS "-pipe ${CMAKE_C_FLAGS}")
    80 add_flag_append(CMAKE_C_FLAGS_RELEASE "-Os")
    82     set(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer ${CMAKE_C_FLAGS_RELEASE}")
    81 add_flag_append(CMAKE_C_FLAGS_DEBUG "-Wextra -O0")
    83     set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g ${CMAKE_C_FLAGS_DEBUG}")
    82 add_flag_append(CMAKE_CXX_FLAGS "-Wall -pipe -fPIC")
    84     set(CMAKE_CXX_FLAGS "-pipe ${CMAKE_CXX_FLAGS}")
    83 add_flag_append(CMAKE_CXX_FLAGS_RELEASE "-Os")
    85     set(CMAKE_CXX_FLAGS_RELEASE "-w -Os -fomit-frame-pointer ${CMAKE_CXX_FLAGS_RELEASE}")
    84 add_flag_append(CMAKE_CXX_FLAGS_DEBUG "-Wextra -O0")
    86     set(CMAKE_CXX_FLAGS_DEBUG "-Wall -O0 -g ${CMAKE_CXX_FLAGS_DEBUG}")
    85 add_flag_append(CMAKE_Pascal_FLAGS "-Cs2000000 -fPIC")
    87 else()
    86 add_flag_append(CMAKE_Pascal_FLAGS_DEBUG "-O- -gv")
    88     #CMake adds a lot of additional configuration flags, so let's clear them up
    87 add_flag_append(CMAKE_Pascal_FLAGS_RELEASE "-Os -Xs")
    89     set(CMAKE_C_FLAGS_RELEASE "")
    88 
    90     set(CMAKE_C_FLAGS_DEBUG "-Wall")
    89 #CMake adds a lot of additional configuration flags, so let's clear them up
    91     set(CMAKE_CXX_FLAGS_RELEASE "")
    90 if(${MINIMAL_FLAGS})
    92     set(CMAKE_CXX_FLAGS_DEBUG "-Wall")
    91     unset(CMAKE_C_FLAGS_RELEASE)
       
    92     unset(CMAKE_C_FLAGS_DEBUG)
       
    93     unset(CMAKE_CXX_FLAGS_RELEASE)
       
    94     unset(CMAKE_CXX_FLAGS_DEBUG)
    93 endif()
    95 endif()
    94 
    96 
    95 
    97 
    96 #parse additional parameters
    98 #parse additional parameters
    97 if(FPFLAGS)
       
    98     add_flag_prepend(CMAKE_Pascal_FLAGS ${FPFLAGS})
       
    99 endif()
       
   100 if(GHFLAGS)
    99 if(GHFLAGS)
   101     if(${allow_parse_args})
   100     if(${CMAKE_VERSION} VERSION_GREATER 2.6)
   102         separate_arguments(ghflags_parsed UNIX_COMMAND ${GHFLAGS})
   101         separate_arguments(ghflags_parsed UNIX_COMMAND ${GHFLAGS})
   103     else()
   102     else()
   104         message("*** FPFLAGS and GHFLAGS are available only when using CMake >= 2.8 ***")
   103         message("*** GHFLAGS are available only when using CMake >= 2.8 ***")
   105     endif()
   104     endif()
   106 endif()
   105 endif()
   107 
   106 
   108 
   107 list(APPEND haskell_flags ${ghflags_parsed} "-O2")
   109 list(APPEND haskell_flags ${ghflags_parsed} # user flags
       
   110                  "-O2"                      # optimise for faster code
       
   111                  )
       
   112 
       
   113 #-vm4079,4080,4081
       
   114 add_flag_append(CMAKE_Pascal_FLAGS "-Cs2000000")
       
   115 add_flag_append(CMAKE_Pascal_FLAGS_DEBUG "-O- -gv")
       
   116 add_flag_append(CMAKE_Pascal_FLAGS_RELEASE "-Os -Xs")
       
   117 
   108 
   118 #get BUILD_TYPE and enable/disable optimisation
   109 #get BUILD_TYPE and enable/disable optimisation
   119 message(STATUS "Using ${CMAKE_BUILD_TYPE} configuration")
   110 message(STATUS "Using ${CMAKE_BUILD_TYPE} configuration")
   120 if(CMAKE_BUILD_TYPE MATCHES "DEBUG")
   111 if(CMAKE_BUILD_TYPE MATCHES "DEBUG")
   121     list(APPEND haskell_flags "-Wall"       # all warnings
   112     list(APPEND haskell_flags "-Wall"       # all warnings