aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorWaluigiWare64 <68647953+WaluigiWare64@users.noreply.github.com>2020-12-19 17:43:53 +0000
committerGitHub <noreply@github.com>2020-12-19 17:43:53 +0000
commitdf190b04000a8a3c5052de3fd695f6c26892f353 (patch)
tree85c53cda9b5e6c73dcfb82f97272e509f023788b /CMakeLists.txt
parentd6cade25f4ac6b2ebac9d4830ab7b10294bc4c89 (diff)
parent659dc58d4d8290d8ef1930d9f21007c0ec4c3739 (diff)
Merge branch 'master' into feature/zip-support
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt49
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