diff options
author | Lioncash <mathew1800@gmail.com> | 2019-03-16 06:45:08 +0100 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2019-03-17 06:49:09 +0100 |
commit | 13bc74e957a9ff62bcd4fc18e2eefa0f0d915a6f (patch) | |
tree | 0d0545da5228ea6648930b119c5ea8ceb1ca0397 /CMakeLists.txt | |
parent | Merge pull request #2251 from bunnei/skip-zero-flush (diff) | |
download | yuzu-13bc74e957a9ff62bcd4fc18e2eefa0f0d915a6f.tar yuzu-13bc74e957a9ff62bcd4fc18e2eefa0f0d915a6f.tar.gz yuzu-13bc74e957a9ff62bcd4fc18e2eefa0f0d915a6f.tar.bz2 yuzu-13bc74e957a9ff62bcd4fc18e2eefa0f0d915a6f.tar.lz yuzu-13bc74e957a9ff62bcd4fc18e2eefa0f0d915a6f.tar.xz yuzu-13bc74e957a9ff62bcd4fc18e2eefa0f0d915a6f.tar.zst yuzu-13bc74e957a9ff62bcd4fc18e2eefa0f0d915a6f.zip |
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 88 |
1 files changed, 9 insertions, 79 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cc24cba6..67e249fbb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,78 +104,12 @@ endif() message(STATUS "Target architecture: ${ARCHITECTURE}") -# Configure compilation flags +# Configure C++ standard # =========================== set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -if (NOT MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - - if (MINGW) - add_definitions(-DMINGW_HAS_SECURE_API) - - if (MINGW_STATIC_BUILD) - add_definitions(-DQT_STATICPLUGIN) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") - endif() - endif() -else() - # Silence "deprecation" warnings - add_definitions(/D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /D_SCL_SECURE_NO_WARNINGS) - # Avoid windows.h junk - add_definitions(/DNOMINMAX) - # Avoid windows.h from including some usually unused libs like winsocks.h, since this might cause some redefinition errors. - add_definitions(/DWIN32_LEAN_AND_MEAN) - - set(CMAKE_CONFIGURATION_TYPES Debug Release CACHE STRING "" FORCE) - - # Tweak optimization settings - # As far as I can tell, there's no way to override the CMake defaults while leaving user - # changes intact, so we'll just clobber everything and say sorry. - message(STATUS "Cache compiler flags ignored, please edit CMakeLists.txt to change the flags.") - - # /W3 - Level 3 warnings - # /MP - Multi-threaded compilation - # /Zi - Output debugging information - # /Zo - enhanced debug info for optimized builds - # /permissive- - enables stricter C++ standards conformance checks - set(CMAKE_C_FLAGS "/W3 /MP /Zi /Zo /permissive-" CACHE STRING "" FORCE) - # /EHsc - C++-only exception handling semantics - # /Zc:throwingNew - let codegen assume `operator new` will never return null - # /Zc:inline - let codegen omit inline functions in object files - set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} /EHsc /std:c++latest /Zc:throwingNew,inline" CACHE STRING "" FORCE) - - # /MDd - Multi-threaded Debug Runtime DLL - set(CMAKE_C_FLAGS_DEBUG "/Od /MDd" CACHE STRING "" FORCE) - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}" CACHE STRING "" FORCE) - - # /O2 - Optimization level 2 - # /GS- - No stack buffer overflow checks - # /MD - Multi-threaded runtime DLL - set(CMAKE_C_FLAGS_RELEASE "/O2 /GS- /MD" CACHE STRING "" FORCE) - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "" FORCE) - - set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/DEBUG /MANIFEST:NO" CACHE STRING "" FORCE) - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/DEBUG /MANIFEST:NO /INCREMENTAL:NO /OPT:REF,ICF" CACHE STRING "" FORCE) -endif() - -# Set file offset size to 64 bits. -# -# On modern Unixes, this is typically already the case. The lone exception is -# glibc, which may default to 32 bits. glibc allows this to be configured -# by setting _FILE_OFFSET_BITS. -if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR MINGW) - add_definitions(-D_FILE_OFFSET_BITS=64) -endif() - -# CMake seems to only define _DEBUG on Windows -set_property(DIRECTORY APPEND PROPERTY - COMPILE_DEFINITIONS $<$<CONFIG:Debug>:_DEBUG> $<$<NOT:$<CONFIG:Debug>>:NDEBUG>) - # System imported libraries # ====================== @@ -326,25 +260,21 @@ endif() # Platform-specific library requirements # ====================================== -IF (APPLE) - find_library(COCOA_LIBRARY Cocoa) # Umbrella framework for everything GUI-related +if (APPLE) + # Umbrella framework for everything GUI-related + find_library(COCOA_LIBRARY Cocoa) set(PLATFORM_LIBRARIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY}) - - if (CMAKE_CXX_COMPILER_ID STREQUAL Clang) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++") - endif() -ELSEIF (WIN32) +elseif (WIN32) # WSAPoll and SHGetKnownFolderPath (AppData/Roaming) didn't exist before WinNT 6.x (Vista) add_definitions(-D_WIN32_WINNT=0x0600 -DWINVER=0x0600) set(PLATFORM_LIBRARIES winmm ws2_32) - IF (MINGW) + if (MINGW) # PSAPI is the Process Status API set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version) - ENDIF (MINGW) -ELSEIF (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") + endif() +elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") set(PLATFORM_LIBRARIES rt) -ENDIF (APPLE) +endif() # Setup a custom clang-format target (if clang-format can be found) that will run # against all the src files. This should be used before making a pull request. |