CMake: Move definitions of externals to the CMakeLists in that directory

This commit is contained in:
Yuri Kunde Schlesner 2017-05-27 23:33:14 -07:00
parent cebdae6c92
commit c211368734
2 changed files with 47 additions and 32 deletions

View File

@ -2,6 +2,10 @@
cmake_minimum_required(VERSION 3.6) cmake_minimum_required(VERSION 3.6)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMakeModules") list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMakeModules")
# 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) function(download_bundled_external remote_path lib_name prefix_var)
set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}") set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}")
if (NOT EXISTS "${prefix}") if (NOT EXISTS "${prefix}")
@ -254,34 +258,9 @@ 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)
add_subdirectory(externals/inih)
add_subdirectory(externals) add_subdirectory(externals)
option(DYNARMIC_TESTS OFF)
set(DYNARMIC_NO_BUNDLED_FMT ON)
add_subdirectory(externals/dynarmic)
add_subdirectory(externals/glad)
add_library(microprofile INTERFACE)
target_include_directories(microprofile INTERFACE externals/microprofile)
add_library(nihstro-headers INTERFACE)
target_include_directories(nihstro-headers INTERFACE externals/nihstro/include)
if (MSVC)
add_subdirectory(externals/getopt)
endif()
# process subdirectories
add_subdirectory(externals/soundtouch)
# The SoundTouch target doesn't export the necessary include paths as properties by default
target_include_directories(SoundTouch INTERFACE "externals/soundtouch/include")
enable_testing()
add_subdirectory(src) add_subdirectory(src)
enable_testing()
# 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

View File

@ -1,16 +1,52 @@
# Definitions for all external bundled libraries
# Catch # Catch
add_library(catch-single-include INTERFACE) add_library(catch-single-include INTERFACE)
target_include_directories(catch-single-include INTERFACE catch/single_include) 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)