| 
									
										
										
										
											2017-05-28 06:33:14 +00:00
										 |  |  | # Definitions for all external bundled libraries
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-30 00:51:06 +00:00
										 |  |  | # Suppress warnings from external libraries
 | 
					
						
							| 
									
										
										
										
											2020-03-28 17:08:27 +00:00
										 |  |  | if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
 | 
					
						
							| 
									
										
										
										
											2019-12-30 00:51:06 +00:00
										 |  |  |     add_compile_options(/W0)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-09 17:24:13 +00:00
										 |  |  | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
 | 
					
						
							|  |  |  | include(DownloadExternals)
 | 
					
						
							| 
									
										
										
										
											2018-09-11 20:00:12 +00:00
										 |  |  | include(ExternalProject)
 | 
					
						
							| 
									
										
										
										
											2017-09-09 17:24:13 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-30 00:51:06 +00:00
										 |  |  | # Boost
 | 
					
						
							|  |  |  | set(BOOST_ROOT "${CMAKE_SOURCE_DIR}/externals/boost")
 | 
					
						
							|  |  |  | set(Boost_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/externals/boost")
 | 
					
						
							|  |  |  | set(Boost_NO_SYSTEM_PATHS ON)
 | 
					
						
							|  |  |  | add_library(boost INTERFACE)
 | 
					
						
							|  |  |  | target_include_directories(boost SYSTEM INTERFACE ${Boost_INCLUDE_DIR})
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Boost::serialization
 | 
					
						
							|  |  |  | file(GLOB boost_serialization_SRC "${CMAKE_SOURCE_DIR}/externals/boost/libs/serialization/src/*.cpp")
 | 
					
						
							|  |  |  | add_library(boost_serialization STATIC ${boost_serialization_SRC})
 | 
					
						
							|  |  |  | target_link_libraries(boost_serialization PUBLIC boost)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Add additional boost libs here; remember to ALIAS them in the root CMakeLists!
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-28 05:46:59 +00:00
										 |  |  | # Catch
 | 
					
						
							|  |  |  | add_library(catch-single-include INTERFACE)
 | 
					
						
							|  |  |  | target_include_directories(catch-single-include INTERFACE catch/single_include)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-28 06:33:14 +00:00
										 |  |  | # Crypto++
 | 
					
						
							|  |  |  | add_subdirectory(cryptopp)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Dynarmic
 | 
					
						
							| 
									
										
										
										
											2018-01-08 16:58:00 +00:00
										 |  |  | if (ARCHITECTURE_x86_64)
 | 
					
						
							|  |  |  |     # Dynarmic will skip defining xbyak if it's already defined, we then define it below
 | 
					
						
							|  |  |  |     add_library(xbyak INTERFACE)
 | 
					
						
							|  |  |  |     option(DYNARMIC_TESTS OFF)
 | 
					
						
							|  |  |  |     set(DYNARMIC_NO_BUNDLED_FMT ON)
 | 
					
						
							| 
									
										
										
										
											2020-04-18 18:45:07 +00:00
										 |  |  |     set(DYNARMIC_FRONTENDS "A32")
 | 
					
						
							| 
									
										
										
										
											2018-01-08 16:58:00 +00:00
										 |  |  |     add_subdirectory(dynarmic)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2017-05-28 06:33:14 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # libfmt
 | 
					
						
							|  |  |  | add_subdirectory(fmt)
 | 
					
						
							| 
									
										
										
										
											2018-03-02 16:12:51 +00:00
										 |  |  | add_library(fmt::fmt ALIAS fmt)
 | 
					
						
							| 
									
										
										
										
											2017-05-28 06:33:14 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # getopt
 | 
					
						
							|  |  |  | if (MSVC)
 | 
					
						
							|  |  |  |     add_subdirectory(getopt)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Glad
 | 
					
						
							|  |  |  | add_subdirectory(glad)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # inih
 | 
					
						
							|  |  |  | add_subdirectory(inih)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # MicroProfile
 | 
					
						
							|  |  |  | add_library(microprofile INTERFACE)
 | 
					
						
							|  |  |  | target_include_directories(microprofile INTERFACE ./microprofile)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Nihstro
 | 
					
						
							|  |  |  | add_library(nihstro-headers INTERFACE)
 | 
					
						
							|  |  |  | target_include_directories(nihstro-headers INTERFACE ./nihstro/include)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-18 16:20:31 +00:00
										 |  |  | # Open Source Archives
 | 
					
						
							|  |  |  | add_subdirectory(open_source_archives)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-28 06:33:14 +00:00
										 |  |  | # SoundTouch
 | 
					
						
							|  |  |  | add_subdirectory(soundtouch)
 | 
					
						
							|  |  |  | # The SoundTouch target doesn't export the necessary include paths as properties by default
 | 
					
						
							|  |  |  | target_include_directories(SoundTouch INTERFACE ./soundtouch/include)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-06 12:14:54 +00:00
										 |  |  | # Teakra
 | 
					
						
							|  |  |  | add_subdirectory(teakra)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-11 22:59:28 +00:00
										 |  |  | # Xbyak
 | 
					
						
							|  |  |  | if (ARCHITECTURE_x86_64)
 | 
					
						
							| 
									
										
										
										
											2017-05-28 06:33:14 +00:00
										 |  |  |     # Defined before "dynarmic" above
 | 
					
						
							|  |  |  |     # add_library(xbyak INTERFACE)
 | 
					
						
							|  |  |  |     target_include_directories(xbyak INTERFACE ./xbyak/xbyak)
 | 
					
						
							| 
									
										
										
										
											2017-06-17 19:20:22 +00:00
										 |  |  |     target_compile_definitions(xbyak INTERFACE XBYAK_NO_OP_NAMES)
 | 
					
						
							| 
									
										
										
										
											2016-12-11 22:59:28 +00:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2017-07-07 19:34:15 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-07 21:15:04 +00:00
										 |  |  | # Zstandard
 | 
					
						
							|  |  |  | add_subdirectory(zstd/build/cmake EXCLUDE_FROM_ALL)
 | 
					
						
							|  |  |  | target_include_directories(libzstd_static INTERFACE ./zstd/lib)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-07 19:34:15 +00:00
										 |  |  | # ENet
 | 
					
						
							|  |  |  | add_subdirectory(enet)
 | 
					
						
							|  |  |  | target_include_directories(enet INTERFACE ./enet/include)
 | 
					
						
							| 
									
										
										
										
											2017-07-09 21:52:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-20 09:20:33 +00:00
										 |  |  | # Cubeb
 | 
					
						
							|  |  |  | if (ENABLE_CUBEB)
 | 
					
						
							|  |  |  |     set(BUILD_TESTS OFF CACHE BOOL "")
 | 
					
						
							|  |  |  |     add_subdirectory(cubeb EXCLUDE_FROM_ALL)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # DiscordRPC
 | 
					
						
							|  |  |  | if (USE_DISCORD_PRESENCE)
 | 
					
						
							| 
									
										
										
										
											2018-09-17 18:58:24 +00:00
										 |  |  |     add_subdirectory(discord-rpc EXCLUDE_FROM_ALL)
 | 
					
						
							| 
									
										
										
										
											2018-08-20 09:20:33 +00:00
										 |  |  |     target_include_directories(discord-rpc INTERFACE ./discord-rpc/include)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-09 21:52:18 +00:00
										 |  |  | if (ENABLE_WEB_SERVICE)
 | 
					
						
							| 
									
										
										
										
											2018-03-24 19:19:35 +00:00
										 |  |  |     # LibreSSL
 | 
					
						
							|  |  |  |     set(LIBRESSL_SKIP_INSTALL ON CACHE BOOL "")
 | 
					
						
							| 
									
										
										
										
											2018-09-17 18:58:24 +00:00
										 |  |  |     add_subdirectory(libressl EXCLUDE_FROM_ALL)
 | 
					
						
							| 
									
										
										
										
											2018-03-24 19:19:35 +00:00
										 |  |  |     target_include_directories(ssl INTERFACE ./libressl/include)
 | 
					
						
							| 
									
										
										
										
											2018-10-13 11:33:04 +00:00
										 |  |  |     target_compile_definitions(ssl PRIVATE -DHAVE_INET_NTOP)
 | 
					
						
							| 
									
										
										
										
											2018-03-24 19:19:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-27 07:35:01 +00:00
										 |  |  |     # JSON
 | 
					
						
							|  |  |  |     add_library(json-headers INTERFACE)
 | 
					
						
							|  |  |  |     target_include_directories(json-headers INTERFACE ./json)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-24 19:19:35 +00:00
										 |  |  |     # lurlparser
 | 
					
						
							| 
									
										
										
										
											2018-09-17 18:58:24 +00:00
										 |  |  |     add_subdirectory(lurlparser EXCLUDE_FROM_ALL)
 | 
					
						
							| 
									
										
										
										
											2018-03-24 19:19:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-21 18:04:04 +00:00
										 |  |  |     if(ANDROID)
 | 
					
						
							|  |  |  |         add_subdirectory(android-ifaddrs)
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-24 19:19:35 +00:00
										 |  |  |     # httplib
 | 
					
						
							|  |  |  |     add_library(httplib INTERFACE)
 | 
					
						
							|  |  |  |     target_include_directories(httplib INTERFACE ./httplib)
 | 
					
						
							| 
									
										
										
										
											2020-02-21 18:04:04 +00:00
										 |  |  |     target_compile_options(httplib INTERFACE -DCPPHTTPLIB_OPENSSL_SUPPORT)
 | 
					
						
							| 
									
										
										
										
											2017-07-09 21:52:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-27 07:35:01 +00:00
										 |  |  |     # cpp-jwt
 | 
					
						
							|  |  |  |     add_library(cpp-jwt INTERFACE)
 | 
					
						
							|  |  |  |     target_include_directories(cpp-jwt INTERFACE ./cpp-jwt/include)
 | 
					
						
							| 
									
										
										
										
											2017-07-09 21:52:18 +00:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2019-04-02 22:57:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # lodepng
 | 
					
						
							|  |  |  | add_subdirectory(lodepng)
 |