Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/llfio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorNiall Douglas (s [underscore] sourceforge {at} nedprod [dot] com) <spamtrap@nedprod.com>2017-07-13 23:03:54 +0300
committerNiall Douglas (s [underscore] sourceforge {at} nedprod [dot] com) <spamtrap@nedprod.com>2017-07-13 23:03:54 +0300
commit217f8cf6295aa9fc7386240ef1971ae9573d381c (patch)
tree63b09a75303871d70f7b54b2f6b73891028f8f22 /cmake
parent9993339dfac2bffaae5859f97fe6bf467bce864e (diff)
Preparation for quickcpplib and outcome v2 port
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QuickCppLibBootstrap.cmake40
1 files changed, 40 insertions, 0 deletions
diff --git a/cmake/QuickCppLibBootstrap.cmake b/cmake/QuickCppLibBootstrap.cmake
new file mode 100644
index 00000000..bf61c540
--- /dev/null
+++ b/cmake/QuickCppLibBootstrap.cmake
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
+# If necessary bring in the quickcpplib cmake tooling
+list(FIND CMAKE_MODULE_PATH "quickcpplib/cmakelib" quickcpplib_idx)
+if(${quickcpplib_idx} EQUAL -1)
+ # CMAKE_SOURCE_DIR is the very topmost parent cmake project
+ # CMAKE_CURRENT_SOURCE_DIR is the current cmake subproject
+
+ # If there is a magic .quickcpplib_use_siblings directory above the topmost project, use sibling edition
+ if(EXISTS "${CMAKE_SOURCE_DIR}/../.quickcpplib_use_siblings")
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../quickcpplib/cmakelib")
+ set(CTEST_QUICKCPPLIB_SCRIPTS "${CMAKE_SOURCE_DIR}/../quickcpplib/scripts")
+ elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.gitmodules")
+ # Read in .gitmodules and look for myself
+ file(READ "${CMAKE_CURRENT_SOURCE_DIR}/.gitmodules" GITMODULESCONTENTS)
+ if(GITMODULESCONTENTS MATCHES ".*\\n?\\[submodule \"([^\"]+\\/quickcpplib)\"\\]")
+ set(quickcpplibpath "${CMAKE_MATCH_1}")
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${quickcpplibpath}/cmake")
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/${quickcpplibpath}/cmakelib")
+ set(CTEST_QUICKCPPLIB_SCRIPTS "${CMAKE_CURRENT_SOURCE_DIR}/${quickcpplibpath}/scripts")
+ else()
+ message(WARNING "WARNING: ${quickcpplibpath}/cmake does not exist, attempting git submodule update --init --recursive ...")
+ include(FindGit)
+ execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ )
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${quickcpplibpath}/cmake")
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/${quickcpplibpath}/cmakelib")
+ set(CTEST_QUICKCPPLIB_SCRIPTS "${CMAKE_CURRENT_SOURCE_DIR}/${quickcpplibpath}/scripts")
+ else()
+ message(FATAL_ERROR "FATAL: ${quickcpplibpath}/cmake does not exist and git submodule update --init --recursive did not make it available, bailing out")
+ endif()
+ endif()
+ else()
+ message(FATAL_ERROR "FATAL: A copy of quickcpplib cannot be found, and cannot find a quickcpplib submodule in this git repository")
+ endif()
+ else()
+ message(FATAL_ERROR "FATAL: A copy of quickcpplib cannot be found, and there are no git submodules to search")
+ endif()
+endif()
+message(STATUS "CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")