summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt31
-rw-r--r--externals/CMakeLists.txt48
2 files changed, 47 insertions, 32 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9e586633c..79dd54d52 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,10 @@
cmake_minimum_required(VERSION 3.6)
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)
set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}")
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_branch_name(GIT_BRANCH)
-add_subdirectory(externals/inih)
-
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)
+enable_testing()
# Install freedesktop.org metadata files, following those specifications:
# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index db70eecd9..1e04931ee 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -1,16 +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
if (ARCHITECTURE_x86_64)
- add_library(xbyak INTERFACE)
- target_include_directories(xbyak INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/xbyak/xbyak)
+ # Defined before "dynarmic" above
+ # add_library(xbyak INTERFACE)
+ target_include_directories(xbyak INTERFACE ./xbyak/xbyak)
if (NOT MSVC)
target_compile_options(xbyak INTERFACE -fno-operator-names)
endif()
endif()
-
-add_subdirectory(cryptopp)
-
-add_subdirectory(fmt)