diff options
| author | WaluigiWare64 <68647953+WaluigiWare64@users.noreply.github.com> | 2020-12-19 17:43:53 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-19 17:43:53 +0000 |
| commit | df190b04000a8a3c5052de3fd695f6c26892f353 (patch) | |
| tree | 85c53cda9b5e6c73dcfb82f97272e509f023788b /CMakeLists.txt | |
| parent | d6cade25f4ac6b2ebac9d4830ab7b10294bc4c89 (diff) | |
| parent | 659dc58d4d8290d8ef1930d9f21007c0ec4c3739 (diff) | |
Merge branch 'master' into feature/zip-support
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 49 |
1 files changed, 39 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cecc50..59a3f2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,20 +1,30 @@ cmake_minimum_required(VERSION 3.13) +include(CheckSymbolExists) +include(CheckLibraryExists) + cmake_policy(VERSION 3.13) if (POLICY CMP0076) cmake_policy(SET CMP0076 NEW) endif() -set(CMAKE_CXX_STANDARD 14) +set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version") + +project(melonDS CXX) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -project(melonDS) +check_library_exists(m pow "" LIBM) +if(LIBM) + link_libraries(m) +endif() if (NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) + set(CMAKE_BUILD_TYPE Release) endif() -include(CheckSymbolExists) function(detect_architecture symbol arch) if (NOT DEFINED ARCHITECTURE) set(CMAKE_REQUIRED_QUIET 1) @@ -65,17 +75,36 @@ if (CMAKE_BUILD_TYPE STREQUAL Release) add_link_options(-s) endif() -add_compile_options(-fno-pic) -add_link_options(-no-pie) - -option(BUILD_QT_SDL "Build Qt/SDL frontend" ON) - if (WIN32) option(BUILD_STATIC "Statically link dependencies" OFF) endif() +if (ENABLE_LTO) + if (WIN32) + add_compile_options(-flto) + add_link_options(-flto) + else() + add_compile_options(-flto -fPIC) + add_link_options(-flto -fuse-linker-plugin -pie) + endif() +endif() + +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(CMAKE_AR "gcc-ar") + set(CMAKE_RANLIB "gcc-ranlib") +elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + find_program(LLD NAMES ld.lld ld64.lld lld-link) + if (NOT LLD STREQUAL "LLD-NOTFOUND") + add_link_options(-fuse-ld=lld) + endif() + set(CMAKE_AR "llvm-ar") + set(CMAKE_RANLIB "llvm-ranlib") +endif() + +option(BUILD_QT_SDL "Build Qt/SDL frontend" ON) + add_subdirectory(src) if (BUILD_QT_SDL) add_subdirectory(src/frontend/qt_sdl) -endif() +endif()
\ No newline at end of file |