[cmake] Added generator propagation to subprojects

This commit is contained in:
Snaipe 2016-01-18 21:55:22 +01:00
parent cea364a881
commit 4530d10af7
3 changed files with 16 additions and 2 deletions

View file

@ -7,7 +7,7 @@ include(CMakeParseArguments)
function (cr_add_subproject _NAME) function (cr_add_subproject _NAME)
set (options CMAKE AUTOTOOLS) set (options CMAKE AUTOTOOLS)
set (oneValueArgs GIT PATH PREFIX) set (oneValueArgs GIT PATH PREFIX GENERATOR)
set (multiValueArgs OPTS IF) set (multiValueArgs OPTS IF)
cmake_parse_arguments (ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) cmake_parse_arguments (ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@ -41,10 +41,14 @@ function (cr_add_subproject _NAME)
endif () endif ()
if (ARGS_CMAKE) if (ARGS_CMAKE)
if (NOT ARGS_GENERATOR)
set (ARGS_GENERATOR ${CMAKE_GENERATOR})
endif ()
set (build_cmds set (build_cmds
CONFIGURE_COMMAND ${CMAKE_COMMAND} <SOURCE_DIR> CONFIGURE_COMMAND ${CMAKE_COMMAND} <SOURCE_DIR>
-DCMAKE_INSTALL_PREFIX=${install_prefix} -DCMAKE_INSTALL_PREFIX=${install_prefix}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-G "${ARGS_GENERATOR}"
${ARGS_OPTS} ${ARGS_OPTS}
BUILD_COMMAND ${CMAKE_COMMAND} --build "${CMAKE_BINARY_DIR}/${_NAME}" BUILD_COMMAND ${CMAKE_COMMAND} --build "${CMAKE_BINARY_DIR}/${_NAME}"
INSTALL_COMMAND ${CMAKE_COMMAND} --build "${CMAKE_BINARY_DIR}/${_NAME}" --target install INSTALL_COMMAND ${CMAKE_COMMAND} --build "${CMAKE_BINARY_DIR}/${_NAME}" --target install

View file

@ -30,6 +30,7 @@ cr_add_subproject (dyncall_s PATH dependencies/dyncall CMAKE IF THEORIES)
cr_add_subproject (nanomsg cr_add_subproject (nanomsg
PATH dependencies/nanomsg-patched PATH dependencies/nanomsg-patched
OPTS "-DNN_TESTS=OFF" OPTS "-DNN_TESTS=OFF"
GENERATOR "Visual Studio 14 2015"
CMAKE CMAKE
IF WIN32 AND NOT CYGWIN IF WIN32 AND NOT CYGWIN
) )

View file

@ -36,8 +36,17 @@ set_property(TEST criterion_unit_tests PROPERTY
if (NOT MSVC) # we disable the scripted tests when building with MSVC if (NOT MSVC) # we disable the scripted tests when building with MSVC
add_custom_target(cram_tests) add_custom_target(cram_tests)
set(PATH_VAR
$ENV{PATH}
"${PROJECT_BINARY_DIR}/samples"
"${PROJECT_BINARY_DIR}/samples/tests"
"${PROJECT_BINARY_DIR}/external/lib"
"${PROJECT_BINARY_DIR}/external/bin"
)
string (REPLACE ";" ":" PATH_VAR "${PATH_VAR}")
set(CMD "") set(CMD "")
set(CMD "${CMD}PATH=$ENV{PATH}:${PROJECT_BINARY_DIR}/samples:${PROJECT_BINARY_DIR}/samples/tests ") set(CMD "${CMD}PATH=${PATH_VAR} ")
set(CMD "${CMD}LC_ALL=en_US.utf8 ") set(CMD "${CMD}LC_ALL=en_US.utf8 ")
set(CMD "${CMD}CRITERION_ALWAYS_SUCCEED=1 ") set(CMD "${CMD}CRITERION_ALWAYS_SUCCEED=1 ")
set(CMD "${CMD}CRITERION_SHORT_FILENAME=1 ") set(CMD "${CMD}CRITERION_SHORT_FILENAME=1 ")