2017-01-27 09:58:21 +01:00
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
|
|
|
add_definitions(-DNOMINMAX)
|
|
|
|
add_definitions(-DUNICODE)
|
|
|
|
add_definitions(-D_UNICODE)
|
|
|
|
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
|
|
add_definitions(-D_WIN32_WINNT=0x0602)
|
2017-02-11 01:28:37 +01:00
|
|
|
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
|
2017-01-27 09:58:21 +01:00
|
|
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
|
|
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
|
|
|
endif()
|
|
|
|
|
2017-05-07 13:29:53 +02:00
|
|
|
if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
|
|
|
# enable the latest C++ standard feature set,
|
|
|
|
# and also disable MSVC specific extensions
|
|
|
|
# to be even more standards compliant.
|
|
|
|
check_and_add_flag(CPPLATEST /std:c++latest)
|
|
|
|
check_and_add_flag(STANDARD_COMPLIANCE /permissive-)
|
|
|
|
else()
|
|
|
|
# Enable C++17, but fall back to C++14 if it isn't available.
|
|
|
|
# CMAKE_CXX_STANDARD cannot be used here because we require C++14 or newer, not any standard.
|
|
|
|
check_and_add_flag(CXX17 -std=c++17)
|
|
|
|
if(NOT FLAG_CXX_CXX17)
|
2017-09-28 00:46:25 +02:00
|
|
|
set(CMAKE_CXX_STANDARD 14)
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
2017-05-07 13:29:53 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
# These compat headers must not be in the include path when building with MSVC,
|
|
|
|
# because it currently does not support __has_include_next / #include_next.
|
|
|
|
include_directories(SYSTEM Core/Common/Compat)
|
|
|
|
endif()
|
2017-05-26 23:01:41 +02:00
|
|
|
|
2017-01-20 17:44:23 +01:00
|
|
|
# These aren't actually needed for C11/C++11
|
|
|
|
# but some dependencies require them (LLVM, libav).
|
|
|
|
add_definitions(-D__STDC_LIMIT_MACROS)
|
|
|
|
add_definitions(-D__STDC_CONSTANT_MACROS)
|
|
|
|
|
2018-03-19 08:38:44 +01:00
|
|
|
# DEPRECATED: When introducing new libraries, do it explicitly.
|
2013-10-17 06:06:34 +02:00
|
|
|
macro(add_dolphin_library lib srcs libs)
|
2017-03-01 13:43:43 +01:00
|
|
|
add_library(${lib} STATIC ${srcs})
|
|
|
|
target_link_libraries(${lib} PUBLIC ${libs})
|
2017-01-25 06:29:30 +01:00
|
|
|
endmacro()
|
2013-10-17 06:06:34 +02:00
|
|
|
|
2010-11-01 16:47:02 +01:00
|
|
|
add_subdirectory(Core)
|
2016-01-20 17:32:53 +01:00
|
|
|
if (ANDROID)
|
2017-03-01 13:43:43 +01:00
|
|
|
add_subdirectory(Android/jni)
|
2016-01-20 17:32:53 +01:00
|
|
|
endif()
|
2014-03-03 03:38:46 +01:00
|
|
|
add_subdirectory(UnitTests)
|
2011-07-18 03:47:55 +02:00
|
|
|
|
|
|
|
if (DSPTOOL)
|
2017-03-01 13:43:43 +01:00
|
|
|
add_subdirectory(DSPTool)
|
2011-07-18 03:47:55 +02:00
|
|
|
endif()
|
|
|
|
|
2016-09-12 00:25:45 +02:00
|
|
|
# TODO: Add DSPSpy. Preferably make it option() and cpack component
|