| 
									
										
										
										
											2017-01-27 00:58:21 -08: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-10 16:28:37 -08:00
										 |  |  |   add_definitions(-D_SCL_SECURE_NO_WARNINGS)
 | 
					
						
							| 
									
										
										
										
											2017-01-27 00:58:21 -08: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)
 | 
					
						
							|  |  |  |     check_and_add_flag(CXX1Z -std=c++1z)
 | 
					
						
							|  |  |  |     if (NOT FLAG_CXX_CXX1Z)
 | 
					
						
							|  |  |  |       set(CMAKE_CXX_STANDARD 14)
 | 
					
						
							|  |  |  |       set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
					
						
							|  |  |  |       set(CMAKE_CXX_EXTENSIONS OFF)
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							|  |  |  |   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)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-17 00:06:34 -04:00
										 |  |  | macro(add_dolphin_library lib srcs libs)
 | 
					
						
							| 
									
										
										
										
											2017-03-01 07:43:43 -05:00
										 |  |  |   add_library(${lib} STATIC ${srcs})
 | 
					
						
							|  |  |  |   target_link_libraries(${lib} PUBLIC ${libs})
 | 
					
						
							| 
									
										
										
										
											2017-01-25 06:29:30 +01:00
										 |  |  | endmacro()
 | 
					
						
							| 
									
										
										
										
											2013-10-17 00:06:34 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-01 15:47:02 +00:00
										 |  |  | add_subdirectory(Core)
 | 
					
						
							| 
									
										
										
										
											2016-01-20 10:32:53 -06:00
										 |  |  | if (ANDROID)
 | 
					
						
							| 
									
										
										
										
											2017-03-01 07:43:43 -05:00
										 |  |  |   add_subdirectory(Android/jni)
 | 
					
						
							| 
									
										
										
										
											2016-01-20 10:32:53 -06:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2014-03-03 03:38:46 +01:00
										 |  |  | add_subdirectory(UnitTests)
 | 
					
						
							| 
									
										
										
										
											2011-07-18 01:47:55 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if (DSPTOOL)
 | 
					
						
							| 
									
										
										
										
											2017-03-01 07:43:43 -05:00
										 |  |  |   add_subdirectory(DSPTool)
 | 
					
						
							| 
									
										
										
										
											2011-07-18 01:47:55 +00:00
										 |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-12 00:25:45 +02:00
										 |  |  | # TODO: Add DSPSpy. Preferably make it option() and cpack component
 |