aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorb-r-o-c-k <brockmammen@gmail.com>2018-06-10 09:57:12 -0500
committerb-r-o-c-k <brockmammen@gmail.com>2018-06-10 09:57:12 -0500
commit61890382eb65193c98a4f0312548ecceb82dad3b (patch)
treea327c896c72f2790b528bfdbdbaddfd69f5763de
parent66a39fce6c70222a7f4a2dbd223a6d0c3a4a5789 (diff)
downloadrneovim-61890382eb65193c98a4f0312548ecceb82dad3b.tar.gz
rneovim-61890382eb65193c98a4f0312548ecceb82dad3b.tar.bz2
rneovim-61890382eb65193c98a4f0312548ecceb82dad3b.zip
deps: Build bundled dependencies automatically for IDEs
Environment variables are used to detect when the project is being built from within Clion or Visual Studio, so that the build process can be simplified by automatically building the bundled dependencies for them.
-rw-r--r--CMakeLists.txt27
1 files changed, 27 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2100c53ad2..70d663a89c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,7 +20,34 @@ if(DEFINED ENV{DEPS_BUILD_DIR})
set(DEPS_PREFIX "$ENV{DEPS_BUILD_DIR}/usr" CACHE PATH "Path prefix for finding dependencies")
else()
set(DEPS_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/.deps/usr" CACHE PATH "Path prefix for finding dependencies")
+ # When running from within CLion or Visual Studio,
+ # build bundled dependencies automatically.
+ if(NOT EXISTS ${DEPS_PREFIX}
+ AND (DEFINED ENV{CLION_IDE}
+ OR DEFINED ENV{VisualStudioEdition}))
+ message(STATUS "Building dependencies...")
+ set(DEPS_BUILD_DIR ${PROJECT_BINARY_DIR}/.deps)
+ file(MAKE_DIRECTORY ${DEPS_BUILD_DIR})
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR}
+ -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
+ -DCMAKE_C_FLAGS_MINSIZEREL=${CMAKE_C_FLAGS_MINSIZEREL}
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO=${CMAKE_C_FLAGS_RELWITHDEBINFO}
+ -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
+ -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
+ ${PROJECT_SOURCE_DIR}/third-party
+ WORKING_DIRECTORY ${DEPS_BUILD_DIR})
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} --build ${DEPS_BUILD_DIR}
+ --config ${CMAKE_BUILD_TYPE})
+ set(DEPS_PREFIX ${DEPS_BUILD_DIR}/usr)
+ endif()
endif()
+
if(CMAKE_CROSSCOMPILING AND NOT UNIX)
list(INSERT CMAKE_FIND_ROOT_PATH 0 ${DEPS_PREFIX})
list(INSERT CMAKE_PREFIX_PATH 0 ${DEPS_PREFIX}/../host/bin)