mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-12-28 18:12:44 -06:00
7f053d0d45
Makes it much nicer to visually scan the options. This also starts the flag descriptions from the same column for the same reason.
96 lines
2.9 KiB
CMake
96 lines
2.9 KiB
CMake
# Enable modules to include each other's files
|
|
include_directories(.)
|
|
|
|
# CMake seems to only define _DEBUG on Windows
|
|
set_property(DIRECTORY APPEND PROPERTY
|
|
COMPILE_DEFINITIONS $<$<CONFIG:Debug>:_DEBUG> $<$<NOT:$<CONFIG:Debug>>:NDEBUG>)
|
|
|
|
# Set compilation flags
|
|
if (MSVC)
|
|
set(CMAKE_CONFIGURATION_TYPES Debug Release CACHE STRING "" FORCE)
|
|
|
|
# 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)
|
|
|
|
# /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
|
|
# /EHsc - C++-only exception handling semantics
|
|
# /Zc:inline - Let codegen omit inline functions in object files
|
|
# /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null
|
|
add_compile_options(
|
|
/W3
|
|
/MP
|
|
/Zi
|
|
/Zo
|
|
/permissive-
|
|
/EHsc
|
|
/std:c++latest
|
|
/Zc:inline
|
|
/Zc:throwingNew
|
|
)
|
|
|
|
# /GS- - No stack buffer overflow checks
|
|
add_compile_options("$<$<CONFIG:Release>:/GS->")
|
|
|
|
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)
|
|
else()
|
|
add_compile_options("-Wno-attributes")
|
|
|
|
if (APPLE AND CMAKE_CXX_COMPILER_ID STREQUAL Clang)
|
|
add_compile_options("-stdlib=libc++")
|
|
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()
|
|
|
|
if (MINGW)
|
|
add_definitions(-DMINGW_HAS_SECURE_API)
|
|
add_compile_options("-gdwarf")
|
|
|
|
if (MINGW_STATIC_BUILD)
|
|
add_definitions(-DQT_STATICPLUGIN)
|
|
add_compile_options("-static")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
add_subdirectory(common)
|
|
add_subdirectory(core)
|
|
add_subdirectory(video_core)
|
|
add_subdirectory(audio_core)
|
|
add_subdirectory(network)
|
|
add_subdirectory(input_common)
|
|
add_subdirectory(tests)
|
|
|
|
if (ENABLE_SDL2)
|
|
add_subdirectory(citra)
|
|
endif()
|
|
|
|
if (ENABLE_QT)
|
|
add_subdirectory(citra_qt)
|
|
endif()
|
|
if (ANDROID)
|
|
add_subdirectory(android/app/src/main/cpp)
|
|
else()
|
|
add_subdirectory(dedicated_room)
|
|
endif()
|
|
|
|
if (ENABLE_WEB_SERVICE)
|
|
add_subdirectory(web_service)
|
|
endif()
|