mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #2734 from yuriks/cmake-imported-libs
CMake: Use CMake target properties for all libraries
This commit is contained in:
		
						commit
						a4f88c7d7c
					
				
					 14 changed files with 160 additions and 120 deletions
				
			
		|  | @ -11,7 +11,7 @@ if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then | ||||||
| 
 | 
 | ||||||
|     if [ ! -e $HOME/.local/bin/cmake ]; then |     if [ ! -e $HOME/.local/bin/cmake ]; then | ||||||
|         echo "CMake not found in the cache, get and extract it..." |         echo "CMake not found in the cache, get and extract it..." | ||||||
|         curl -L http://www.cmake.org/files/v3.2/cmake-3.2.0-Linux-i386.tar.gz \ |         curl -L http://www.cmake.org/files/v3.6/cmake-3.6.3-Linux-x86_64.tar.gz \ | ||||||
|             | tar -xz -C $HOME/.local --strip-components=1 |             | tar -xz -C $HOME/.local --strip-components=1 | ||||||
|     else |     else | ||||||
|         echo "Using cached CMake" |         echo "Using cached CMake" | ||||||
|  |  | ||||||
							
								
								
									
										180
									
								
								CMakeLists.txt
									
										
									
									
									
								
							
							
						
						
									
										180
									
								
								CMakeLists.txt
									
										
									
									
									
								
							|  | @ -1,20 +1,25 @@ | ||||||
| # CMake 3.2 required for cmake to know the right flags for CXX standard on OSX | # CMake 3.6 required for FindBoost to define IMPORTED libs properly on unknown Boost versions | ||||||
| cmake_minimum_required(VERSION 3.2) | cmake_minimum_required(VERSION 3.6) | ||||||
| set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules) | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") | ||||||
|  | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules") | ||||||
| 
 | 
 | ||||||
| function(download_bundled_external remote_path lib_name prefix_var) | project(citra) | ||||||
|     set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}") | 
 | ||||||
|     if (NOT EXISTS "${prefix}") | option(ENABLE_SDL2 "Enable the SDL2 frontend" ON) | ||||||
|         message(STATUS "Downloading binaries for ${lib_name}...") | option(CITRA_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" OFF) | ||||||
|         file(DOWNLOAD | 
 | ||||||
|             https://github.com/citra-emu/ext-windows-bin/raw/master/${remote_path}${lib_name}.7z | option(ENABLE_QT "Enable the Qt frontend" ON) | ||||||
|             "${CMAKE_BINARY_DIR}/externals/${lib_name}.7z" SHOW_PROGRESS) | option(CITRA_USE_BUNDLED_QT "Download bundled Qt binaries" OFF) | ||||||
|         execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "${CMAKE_BINARY_DIR}/externals/${lib_name}.7z" | 
 | ||||||
|             WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/externals") | if(NOT EXISTS ${CMAKE_SOURCE_DIR}/.git/hooks/pre-commit) | ||||||
|     endif() |     message(STATUS "Copying pre-commit hook") | ||||||
|     message(STATUS "Using bundled binaries at ${prefix}") |     file(COPY hooks/pre-commit | ||||||
|     set(${prefix_var} "${prefix}" PARENT_SCOPE) |         DESTINATION ${CMAKE_SOURCE_DIR}/.git/hooks) | ||||||
| endfunction() | endif() | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Detect current compilation architecture and create standard definitions | ||||||
|  | # ======================================================================= | ||||||
| 
 | 
 | ||||||
| include(CheckSymbolExists) | include(CheckSymbolExists) | ||||||
| function(detect_architecture symbol arch) | function(detect_architecture symbol arch) | ||||||
|  | @ -33,20 +38,6 @@ function(detect_architecture symbol arch) | ||||||
|     endif() |     endif() | ||||||
| endfunction() | endfunction() | ||||||
| 
 | 
 | ||||||
| project(citra) |  | ||||||
| 
 |  | ||||||
| option(ENABLE_SDL2 "Enable the SDL2 frontend" ON) |  | ||||||
| option(CITRA_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" OFF) |  | ||||||
| 
 |  | ||||||
| option(ENABLE_QT "Enable the Qt frontend" ON) |  | ||||||
| option(CITRA_USE_BUNDLED_QT "Download bundled Qt binaries" OFF) |  | ||||||
| 
 |  | ||||||
| if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git/hooks/pre-commit) |  | ||||||
|     message(STATUS "Copying pre-commit hook") |  | ||||||
|     file(COPY hooks/pre-commit |  | ||||||
|         DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/.git/hooks) |  | ||||||
| endif() |  | ||||||
| 
 |  | ||||||
| if (MSVC) | if (MSVC) | ||||||
|     detect_architecture("_M_AMD64" x86_64) |     detect_architecture("_M_AMD64" x86_64) | ||||||
|     detect_architecture("_M_IX86" x86) |     detect_architecture("_M_IX86" x86) | ||||||
|  | @ -63,6 +54,10 @@ if (NOT DEFINED ARCHITECTURE) | ||||||
| endif() | endif() | ||||||
| message(STATUS "Target architecture: ${ARCHITECTURE}") | message(STATUS "Target architecture: ${ARCHITECTURE}") | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | # Configure compilation flags | ||||||
|  | # =========================== | ||||||
|  | 
 | ||||||
| set(CMAKE_CXX_STANDARD 14) | set(CMAKE_CXX_STANDARD 14) | ||||||
| set(CMAKE_CXX_STANDARD_REQUIRED ON) | set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||||||
| 
 | 
 | ||||||
|  | @ -130,28 +125,44 @@ add_definitions(-DSINGLETHREADED) | ||||||
| set_property(DIRECTORY APPEND PROPERTY | set_property(DIRECTORY APPEND PROPERTY | ||||||
|     COMPILE_DEFINITIONS $<$<CONFIG:Debug>:_DEBUG> $<$<NOT:$<CONFIG:Debug>>:NDEBUG>) |     COMPILE_DEFINITIONS $<$<CONFIG:Debug>:_DEBUG> $<$<NOT:$<CONFIG:Debug>>:NDEBUG>) | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | # System imported libraries | ||||||
|  | # ====================== | ||||||
|  | 
 | ||||||
|  | # This function downloads a binary library package from our external repo. | ||||||
|  | # Params: | ||||||
|  | #   remote_path: path to the file to download, relative to the remote repository root | ||||||
|  | #   prefix_var: name of a variable which will be set with the path to the extracted contents | ||||||
|  | function(download_bundled_external remote_path lib_name prefix_var) | ||||||
|  |     set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}") | ||||||
|  |     if (NOT EXISTS "${prefix}") | ||||||
|  |         message(STATUS "Downloading binaries for ${lib_name}...") | ||||||
|  |         file(DOWNLOAD | ||||||
|  |             https://github.com/citra-emu/ext-windows-bin/raw/master/${remote_path}${lib_name}.7z | ||||||
|  |             "${CMAKE_BINARY_DIR}/externals/${lib_name}.7z" SHOW_PROGRESS) | ||||||
|  |         execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "${CMAKE_BINARY_DIR}/externals/${lib_name}.7z" | ||||||
|  |             WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/externals") | ||||||
|  |     endif() | ||||||
|  |     message(STATUS "Using bundled binaries at ${prefix}") | ||||||
|  |     set(${prefix_var} "${prefix}" PARENT_SCOPE) | ||||||
|  | endfunction() | ||||||
|  | 
 | ||||||
| find_package(PNG QUIET) | find_package(PNG QUIET) | ||||||
| if (PNG_FOUND) | if (NOT PNG_FOUND) | ||||||
|     add_definitions(-DHAVE_PNG) |  | ||||||
| else() |  | ||||||
|     message(STATUS "libpng not found. Some debugging features have been disabled.") |     message(STATUS "libpng not found. Some debugging features have been disabled.") | ||||||
| endif() | endif() | ||||||
| 
 | 
 | ||||||
| find_package(Boost 1.57.0 QUIET) | find_package(Boost 1.63.0 QUIET) | ||||||
| if (NOT Boost_FOUND) | if (NOT Boost_FOUND) | ||||||
|     message(STATUS "Boost 1.57.0 or newer not found, falling back to externals") |     message(STATUS "Boost 1.63.0 or newer not found, falling back to externals") | ||||||
|     set(Boost_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/externals/boost") | 
 | ||||||
|  |     set(BOOST_ROOT "${CMAKE_SOURCE_DIR}/externals/boost") | ||||||
|  |     set(Boost_NO_SYSTEM_PATHS OFF) | ||||||
|  |     find_package(Boost QUIET REQUIRED) | ||||||
| endif() | endif() | ||||||
| include_directories(${Boost_INCLUDE_DIR}) |  | ||||||
| 
 |  | ||||||
| # Include bundled CMake modules |  | ||||||
| list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/externals/cmake-modules") |  | ||||||
| 
 |  | ||||||
| find_package(OpenGL REQUIRED) |  | ||||||
| include_directories(${OPENGL_INCLUDE_DIR}) |  | ||||||
| 
 | 
 | ||||||
| # Prefer the -pthread flag on Linux. | # Prefer the -pthread flag on Linux. | ||||||
| set (THREADS_PREFER_PTHREAD_FLAG ON) | set(THREADS_PREFER_PTHREAD_FLAG ON) | ||||||
| find_package(Threads REQUIRED) | find_package(Threads REQUIRED) | ||||||
| 
 | 
 | ||||||
| if (ENABLE_SDL2) | if (ENABLE_SDL2) | ||||||
|  | @ -174,10 +185,43 @@ if (ENABLE_SDL2) | ||||||
|     else() |     else() | ||||||
|         find_package(SDL2 REQUIRED) |         find_package(SDL2 REQUIRED) | ||||||
|     endif() |     endif() | ||||||
|  | 
 | ||||||
|  |     if (SDL2_FOUND) | ||||||
|  |         # TODO(yuriks): Make FindSDL2.cmake export an IMPORTED library instead | ||||||
|  |         add_library(SDL2 INTERFACE) | ||||||
|  |         target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARY}") | ||||||
|  |         target_include_directories(SDL2 INTERFACE "${SDL2_INCLUDE_DIR}") | ||||||
|  |     endif() | ||||||
| else() | else() | ||||||
|     set(SDL2_FOUND NO) |     set(SDL2_FOUND NO) | ||||||
| endif() | endif() | ||||||
| 
 | 
 | ||||||
|  | if (ENABLE_QT) | ||||||
|  |     if (CITRA_USE_BUNDLED_QT) | ||||||
|  |         if (MSVC14 AND ARCHITECTURE_x86_64) | ||||||
|  |             set(QT_VER qt-5.7-msvc2015_64) | ||||||
|  |         else() | ||||||
|  |             message(FATAL_ERROR "No bundled Qt binaries for your toolchain. Disable CITRA_USE_BUNDLED_QT and provide your own.") | ||||||
|  |         endif() | ||||||
|  | 
 | ||||||
|  |         if (DEFINED QT_VER) | ||||||
|  |             download_bundled_external("qt/" ${QT_VER} QT_PREFIX) | ||||||
|  |         endif() | ||||||
|  | 
 | ||||||
|  |         set(QT_PREFIX_HINT HINTS "${QT_PREFIX}") | ||||||
|  |     else() | ||||||
|  |         # Passing an empty HINTS seems to cause default system paths to get ignored in CMake 2.8 so | ||||||
|  |         # make sure to not pass anything if we don't have one. | ||||||
|  |         set(QT_PREFIX_HINT) | ||||||
|  |     endif() | ||||||
|  | 
 | ||||||
|  |     find_package(Qt5 REQUIRED COMPONENTS Widgets OpenGL ${QT_PREFIX_HINT}) | ||||||
|  | endif() | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Platform-specific library requirements | ||||||
|  | # ====================================== | ||||||
|  | 
 | ||||||
| IF (APPLE) | IF (APPLE) | ||||||
|     FIND_LIBRARY(COCOA_LIBRARY Cocoa)           # Umbrella framework for everything GUI-related |     FIND_LIBRARY(COCOA_LIBRARY Cocoa)           # Umbrella framework for everything GUI-related | ||||||
|     set(PLATFORM_LIBRARIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY}) |     set(PLATFORM_LIBRARIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY}) | ||||||
|  | @ -206,28 +250,9 @@ if (UNIX OR MINGW) | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
| 
 | 
 | ||||||
| if (ENABLE_QT) |  | ||||||
|     if (CITRA_USE_BUNDLED_QT) |  | ||||||
|         if (MSVC14 AND ARCHITECTURE_x86_64) |  | ||||||
|             set(QT_VER qt-5.7-msvc2015_64) |  | ||||||
|         else() |  | ||||||
|             message(FATAL_ERROR "No bundled Qt binaries for your toolchain. Disable CITRA_USE_BUNDLED_QT and provide your own.") |  | ||||||
|         endif() |  | ||||||
| 
 | 
 | ||||||
|         if (DEFINED QT_VER) | # Include source code | ||||||
|             download_bundled_external("qt/" ${QT_VER} QT_PREFIX) | # =================== | ||||||
|         endif() |  | ||||||
| 
 |  | ||||||
|         set(QT_PREFIX_HINT HINTS "${QT_PREFIX}") |  | ||||||
|     else() |  | ||||||
|         # Passing an empty HINTS seems to cause default system paths to get ignored in CMake 2.8 so |  | ||||||
|         # make sure to not pass anything if we don't have one. |  | ||||||
|         set(QT_PREFIX_HINT) |  | ||||||
|     endif() |  | ||||||
| 
 |  | ||||||
|     find_package(Qt5 REQUIRED COMPONENTS Widgets OpenGL ${QT_PREFIX_HINT}) |  | ||||||
|     set(CITRA_QT_LIBS Qt5::Widgets Qt5::OpenGL) |  | ||||||
| endif() |  | ||||||
| 
 | 
 | ||||||
| # This function should be passed a list of all files in a target. It will automatically generate | # This function should be passed a list of all files in a target. It will automatically generate | ||||||
| # file groups following the directory hierarchy, so that the layout of the files in IDEs matches the | # file groups following the directory hierarchy, so that the layout of the files in IDEs matches the | ||||||
|  | @ -251,30 +276,13 @@ get_git_head_revision(GIT_REF_SPEC GIT_REV) | ||||||
| git_describe(GIT_DESC --always --long --dirty) | git_describe(GIT_DESC --always --long --dirty) | ||||||
| git_branch_name(GIT_BRANCH) | git_branch_name(GIT_BRANCH) | ||||||
| 
 | 
 | ||||||
| set(INI_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/externals/inih") |  | ||||||
| include_directories(${INI_PREFIX}) |  | ||||||
| add_subdirectory(${INI_PREFIX}) |  | ||||||
| 
 |  | ||||||
| add_subdirectory(externals) | add_subdirectory(externals) | ||||||
| 
 | add_subdirectory(src) | ||||||
| option(DYNARMIC_TESTS OFF) |  | ||||||
| set(DYNARMIC_NO_BUNDLED_FMT ON) |  | ||||||
| add_subdirectory(externals/dynarmic) |  | ||||||
| 
 |  | ||||||
| add_subdirectory(externals/glad) |  | ||||||
| include_directories(externals/microprofile) |  | ||||||
| include_directories(externals/nihstro/include) |  | ||||||
| 
 |  | ||||||
| if (MSVC) |  | ||||||
|     add_subdirectory(externals/getopt) |  | ||||||
| endif() |  | ||||||
| 
 |  | ||||||
| # process subdirectories |  | ||||||
| add_subdirectory(externals/soundtouch) |  | ||||||
| 
 |  | ||||||
| enable_testing() | enable_testing() | ||||||
| 
 | 
 | ||||||
| add_subdirectory(src) | 
 | ||||||
|  | # Installation instructions | ||||||
|  | # ========================= | ||||||
| 
 | 
 | ||||||
| # Install freedesktop.org metadata files, following those specifications: | # Install freedesktop.org metadata files, following those specifications: | ||||||
| # http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html | # http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html | ||||||
|  |  | ||||||
							
								
								
									
										52
									
								
								externals/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								externals/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -1,12 +1,52 @@ | ||||||
|  | # Definitions for all external bundled libraries | ||||||
|  | 
 | ||||||
|  | # Catch | ||||||
|  | add_library(catch-single-include INTERFACE) | ||||||
|  | target_include_directories(catch-single-include INTERFACE catch/single_include) | ||||||
|  | 
 | ||||||
|  | # Crypto++ | ||||||
|  | add_subdirectory(cryptopp) | ||||||
|  | 
 | ||||||
|  | # Dynarmic | ||||||
|  | # 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) | ||||||
|  | add_subdirectory(dynarmic) | ||||||
|  | 
 | ||||||
|  | # libfmt | ||||||
|  | add_subdirectory(fmt) | ||||||
|  | 
 | ||||||
|  | # 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) | ||||||
|  | 
 | ||||||
|  | # 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) | ||||||
|  | 
 | ||||||
| # Xbyak | # Xbyak | ||||||
| if (ARCHITECTURE_x86_64) | if (ARCHITECTURE_x86_64) | ||||||
|     add_library(xbyak INTERFACE) |     # Defined before "dynarmic" above | ||||||
|     target_include_directories(xbyak INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/xbyak/xbyak) |     # add_library(xbyak INTERFACE) | ||||||
|  |     target_include_directories(xbyak INTERFACE ./xbyak/xbyak) | ||||||
|     if (NOT MSVC) |     if (NOT MSVC) | ||||||
|         target_compile_options(xbyak INTERFACE -fno-operator-names) |         target_compile_options(xbyak INTERFACE -fno-operator-names) | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
| 
 |  | ||||||
| add_subdirectory(cryptopp) |  | ||||||
| 
 |  | ||||||
| add_subdirectory(fmt) |  | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								externals/cryptopp/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								externals/cryptopp/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -10,6 +10,7 @@ | ||||||
| #  - disabled installation | #  - disabled installation | ||||||
| #  - disabled documentation | #  - disabled documentation | ||||||
| #  - configured to build a static library only | #  - configured to build a static library only | ||||||
|  | #  - adds include directories to the library target | ||||||
| 
 | 
 | ||||||
| include(TestBigEndian) | include(TestBigEndian) | ||||||
| include(CheckCXXCompilerFlag) | include(CheckCXXCompilerFlag) | ||||||
|  | @ -148,14 +149,15 @@ endif() | ||||||
| # Compile targets | # Compile targets | ||||||
| #============================================================================ | #============================================================================ | ||||||
| add_library(cryptopp STATIC ${cryptopp_SOURCES}) | add_library(cryptopp STATIC ${cryptopp_SOURCES}) | ||||||
|  | target_include_directories(cryptopp INTERFACE .) | ||||||
| 
 | 
 | ||||||
| #============================================================================ | #============================================================================ | ||||||
| # Third-party libraries | # Third-party libraries | ||||||
| #============================================================================ | #============================================================================ | ||||||
| 
 | 
 | ||||||
| if(WIN32) | if(WIN32) | ||||||
|     target_link_libraries(cryptopp ws2_32) |     target_link_libraries(cryptopp PRIVATE ws2_32) | ||||||
| endif() | endif() | ||||||
| 
 | 
 | ||||||
| find_package(Threads) | find_package(Threads) | ||||||
| target_link_libraries(cryptopp ${CMAKE_THREAD_LIBS_INIT}) | target_link_libraries(cryptopp PRIVATE ${CMAKE_THREAD_LIBS_INIT}) | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								externals/glad/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								externals/glad/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -9,6 +9,7 @@ set(HEADERS | ||||||
| create_directory_groups(${SRCS} ${HEADERS}) | create_directory_groups(${SRCS} ${HEADERS}) | ||||||
| add_library(glad STATIC ${SRCS} ${HEADERS}) | add_library(glad STATIC ${SRCS} ${HEADERS}) | ||||||
| target_include_directories(glad PUBLIC "include/") | target_include_directories(glad PUBLIC "include/") | ||||||
|  | 
 | ||||||
| if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") | if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") | ||||||
|     target_link_libraries(glad dl) |     target_link_libraries(glad PRIVATE dl) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								externals/inih/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								externals/inih/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -9,3 +9,4 @@ set(HEADERS | ||||||
| 
 | 
 | ||||||
| create_directory_groups(${SRCS} ${HEADERS}) | create_directory_groups(${SRCS} ${HEADERS}) | ||||||
| add_library(inih ${SRCS} ${HEADERS}) | add_library(inih ${SRCS} ${HEADERS}) | ||||||
|  | target_include_directories(inih INTERFACE .) | ||||||
|  |  | ||||||
|  | @ -27,12 +27,9 @@ set(HEADERS | ||||||
|             time_stretch.h |             time_stretch.h | ||||||
|             ) |             ) | ||||||
| 
 | 
 | ||||||
| include_directories(../../externals/soundtouch/include) |  | ||||||
| 
 |  | ||||||
| if(SDL2_FOUND) | if(SDL2_FOUND) | ||||||
|     set(SRCS ${SRCS} sdl2_sink.cpp) |     set(SRCS ${SRCS} sdl2_sink.cpp) | ||||||
|     set(HEADERS ${HEADERS} sdl2_sink.h) |     set(HEADERS ${HEADERS} sdl2_sink.h) | ||||||
|     include_directories(${SDL2_INCLUDE_DIR}) |  | ||||||
| endif() | endif() | ||||||
| 
 | 
 | ||||||
| create_directory_groups(${SRCS} ${HEADERS}) | create_directory_groups(${SRCS} ${HEADERS}) | ||||||
|  | @ -42,6 +39,6 @@ target_link_libraries(audio_core PUBLIC common core) | ||||||
| target_link_libraries(audio_core PRIVATE SoundTouch) | target_link_libraries(audio_core PRIVATE SoundTouch) | ||||||
| 
 | 
 | ||||||
| if(SDL2_FOUND) | if(SDL2_FOUND) | ||||||
|     target_link_libraries(audio_core PRIVATE ${SDL2_LIBRARY}) |     target_link_libraries(audio_core PRIVATE SDL2) | ||||||
|     target_compile_definitions(audio_core PRIVATE HAVE_SDL2) |     target_compile_definitions(audio_core PRIVATE HAVE_SDL2) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | @ -15,15 +15,13 @@ set(HEADERS | ||||||
| 
 | 
 | ||||||
| create_directory_groups(${SRCS} ${HEADERS}) | create_directory_groups(${SRCS} ${HEADERS}) | ||||||
| 
 | 
 | ||||||
| include_directories(${SDL2_INCLUDE_DIR}) |  | ||||||
| 
 |  | ||||||
| add_executable(citra ${SRCS} ${HEADERS}) | add_executable(citra ${SRCS} ${HEADERS}) | ||||||
| target_link_libraries(citra PRIVATE common core input_common) | target_link_libraries(citra PRIVATE common core input_common) | ||||||
| target_link_libraries(citra PRIVATE ${SDL2_LIBRARY} ${OPENGL_gl_LIBRARY} inih glad) | target_link_libraries(citra PRIVATE inih glad) | ||||||
| if (MSVC) | if (MSVC) | ||||||
|     target_link_libraries(citra PRIVATE getopt) |     target_link_libraries(citra PRIVATE getopt) | ||||||
| endif() | endif() | ||||||
| target_link_libraries(citra PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads) | target_link_libraries(citra PRIVATE ${PLATFORM_LIBRARIES} SDL2 Threads::Threads) | ||||||
| 
 | 
 | ||||||
| if(UNIX AND NOT APPLE) | if(UNIX AND NOT APPLE) | ||||||
|     install(TARGETS citra RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") |     install(TARGETS citra RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") | ||||||
|  |  | ||||||
|  | @ -92,7 +92,7 @@ else() | ||||||
|     add_executable(citra-qt ${SRCS} ${HEADERS} ${UI_HDRS}) |     add_executable(citra-qt ${SRCS} ${HEADERS} ${UI_HDRS}) | ||||||
| endif() | endif() | ||||||
| target_link_libraries(citra-qt PRIVATE audio_core common core input_common video_core) | target_link_libraries(citra-qt PRIVATE audio_core common core input_common video_core) | ||||||
| target_link_libraries(citra-qt PRIVATE ${OPENGL_gl_LIBRARY} ${CITRA_QT_LIBS} glad) | target_link_libraries(citra-qt PRIVATE Boost::boost glad nihstro-headers Qt5::OpenGL Qt5::Widgets) | ||||||
| target_link_libraries(citra-qt PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads) | target_link_libraries(citra-qt PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads) | ||||||
| 
 | 
 | ||||||
| if(UNIX AND NOT APPLE) | if(UNIX AND NOT APPLE) | ||||||
|  |  | ||||||
|  | @ -95,6 +95,7 @@ endif() | ||||||
| create_directory_groups(${SRCS} ${HEADERS}) | create_directory_groups(${SRCS} ${HEADERS}) | ||||||
| 
 | 
 | ||||||
| add_library(common STATIC ${SRCS} ${HEADERS}) | add_library(common STATIC ${SRCS} ${HEADERS}) | ||||||
|  | target_link_libraries(common PUBLIC Boost::boost microprofile) | ||||||
| if (ARCHITECTURE_x86_64) | if (ARCHITECTURE_x86_64) | ||||||
|     target_link_libraries(common PRIVATE xbyak) |     target_link_libraries(common PRIVATE xbyak) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | @ -374,11 +374,7 @@ set(HEADERS | ||||||
|             telemetry_session.h |             telemetry_session.h | ||||||
|             ) |             ) | ||||||
| 
 | 
 | ||||||
| include_directories(../../externals/dynarmic/include) |  | ||||||
| include_directories(../../externals/cryptopp) |  | ||||||
| 
 |  | ||||||
| create_directory_groups(${SRCS} ${HEADERS}) | create_directory_groups(${SRCS} ${HEADERS}) | ||||||
| 
 |  | ||||||
| add_library(core STATIC ${SRCS} ${HEADERS}) | add_library(core STATIC ${SRCS} ${HEADERS}) | ||||||
| target_link_libraries(core PUBLIC common PRIVATE audio_core video_core) | target_link_libraries(core PUBLIC common PRIVATE audio_core video_core) | ||||||
| target_link_libraries(core PRIVATE cryptopp dynarmic) | target_link_libraries(core PUBLIC Boost::boost PRIVATE cryptopp dynarmic) | ||||||
|  |  | ||||||
|  | @ -13,7 +13,6 @@ set(HEADERS | ||||||
| if(SDL2_FOUND) | if(SDL2_FOUND) | ||||||
|     set(SRCS ${SRCS} sdl/sdl.cpp) |     set(SRCS ${SRCS} sdl/sdl.cpp) | ||||||
|     set(HEADERS ${HEADERS} sdl/sdl.h) |     set(HEADERS ${HEADERS} sdl/sdl.h) | ||||||
|     include_directories(${SDL2_INCLUDE_DIR}) |  | ||||||
| endif() | endif() | ||||||
| 
 | 
 | ||||||
| create_directory_groups(${SRCS} ${HEADERS}) | create_directory_groups(${SRCS} ${HEADERS}) | ||||||
|  | @ -22,6 +21,6 @@ add_library(input_common STATIC ${SRCS} ${HEADERS}) | ||||||
| target_link_libraries(input_common PUBLIC core PRIVATE common) | target_link_libraries(input_common PUBLIC core PRIVATE common) | ||||||
| 
 | 
 | ||||||
| if(SDL2_FOUND) | if(SDL2_FOUND) | ||||||
|     target_link_libraries(input_common PRIVATE ${SDL2_LIBRARY}) |     target_link_libraries(input_common PRIVATE SDL2) | ||||||
|     target_compile_definitions(input_common PRIVATE HAVE_SDL2) |     target_compile_definitions(input_common PRIVATE HAVE_SDL2) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | @ -10,11 +10,9 @@ set(HEADERS | ||||||
| 
 | 
 | ||||||
| create_directory_groups(${SRCS} ${HEADERS}) | create_directory_groups(${SRCS} ${HEADERS}) | ||||||
| 
 | 
 | ||||||
| include_directories(../../externals/catch/single_include/) |  | ||||||
| 
 |  | ||||||
| add_executable(tests ${SRCS} ${HEADERS}) | add_executable(tests ${SRCS} ${HEADERS}) | ||||||
| target_link_libraries(tests PRIVATE common core) | target_link_libraries(tests PRIVATE common core) | ||||||
| target_link_libraries(tests PRIVATE glad) # To support linker work-around | target_link_libraries(tests PRIVATE glad) # To support linker work-around | ||||||
| target_link_libraries(tests PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads) | target_link_libraries(tests PRIVATE ${PLATFORM_LIBRARIES} catch-single-include Threads::Threads) | ||||||
| 
 | 
 | ||||||
| add_test(NAME tests COMMAND $<TARGET_FILE:tests>) | add_test(NAME tests COMMAND tests) | ||||||
|  |  | ||||||
|  | @ -80,14 +80,13 @@ create_directory_groups(${SRCS} ${HEADERS}) | ||||||
| 
 | 
 | ||||||
| add_library(video_core STATIC ${SRCS} ${HEADERS}) | add_library(video_core STATIC ${SRCS} ${HEADERS}) | ||||||
| target_link_libraries(video_core PUBLIC common core) | target_link_libraries(video_core PUBLIC common core) | ||||||
| target_link_libraries(video_core PRIVATE glad) | target_link_libraries(video_core PRIVATE glad nihstro-headers) | ||||||
| 
 | 
 | ||||||
| if (ARCHITECTURE_x86_64) | if (ARCHITECTURE_x86_64) | ||||||
|     target_link_libraries(video_core PRIVATE xbyak) |     target_link_libraries(video_core PRIVATE xbyak) | ||||||
| endif() | endif() | ||||||
| 
 | 
 | ||||||
| if (PNG_FOUND) | if (PNG_FOUND) | ||||||
|     target_link_libraries(video_core PRIVATE ${PNG_LIBRARIES}) |     target_link_libraries(video_core PRIVATE PNG::PNG) | ||||||
|     target_include_directories(video_core PRIVATE ${PNG_INCLUDE_DIRS}) |     target_compile_definitions(video_core PRIVATE HAVE_PNG) | ||||||
|     target_compile_definitions(video_core PRIVATE ${PNG_DEFINITIONS}) |  | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue