CMake updates (#123)
* single dependency file * Disable testing for dependencies * Move enable_testing before dependencies
This commit is contained in:
parent
2722f559cb
commit
90ac2149f9
@ -73,24 +73,28 @@ if(DOXYGEN_FOUND)
|
||||
endif()
|
||||
|
||||
if(BUILD_TESTING)
|
||||
enable_testing()
|
||||
set(GOOGLETEST_DEPS_DIR ${PROJECT_DEPS_DIR}/googletest)
|
||||
set(LIBUV_DEPS_DIR ${PROJECT_DEPS_DIR}/libuv)
|
||||
|
||||
configure_file(${PROJECT_CMAKE_IN}/deps.in ${PROJECT_DEPS_DIR}/CMakeLists.txt)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${PROJECT_DEPS_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${PROJECT_DEPS_DIR})
|
||||
|
||||
# Disable testing for dependencies
|
||||
set(BUILD_TESTING OFF)
|
||||
|
||||
# gtest, gtest_main, gmock and gmock_main targets are available from now on
|
||||
configure_file(${PROJECT_CMAKE_IN}/googletest.in ${GOOGLETEST_DEPS_DIR}/CMakeLists.txt)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${GOOGLETEST_DEPS_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${GOOGLETEST_DEPS_DIR})
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
add_subdirectory(${GOOGLETEST_DEPS_DIR}/src)
|
||||
add_subdirectory(${GOOGLETEST_DEPS_DIR})
|
||||
|
||||
configure_file(${PROJECT_CMAKE_IN}/libuv.in ${LIBUV_DEPS_DIR}/CMakeLists.txt)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${LIBUV_DEPS_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${LIBUV_DEPS_DIR})
|
||||
include_directories(${LIBUV_DEPS_DIR}/src/include)
|
||||
find_library(libuv_static NAMES libuv.a libuv PATHS ${LIBUV_DEPS_DIR}/src PATH_SUFFIXES .libs Release NO_DEFAULT_PATH)
|
||||
find_library(libuv_shared NAMES uv libuv PATHS ${LIBUV_DEPS_DIR}/src PATH_SUFFIXES .libs Release NO_DEFAULT_PATH)
|
||||
# uv and uv_a targets are available from now on
|
||||
add_subdirectory(${LIBUV_DEPS_DIR})
|
||||
include_directories(${LIBUV_DEPS_DIR}/include)
|
||||
|
||||
# Enable testing for uvw
|
||||
set(BUILD_TESTING ON)
|
||||
|
||||
enable_testing()
|
||||
add_subdirectory(test)
|
||||
endif()
|
||||
|
||||
|
||||
26
cmake/in/deps.in
Normal file
26
cmake/in/deps.in
Normal file
@ -0,0 +1,26 @@
|
||||
project(deps-download NONE)
|
||||
cmake_minimum_required(VERSION 3.2)
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
ExternalProject_Add(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG master
|
||||
SOURCE_DIR @GOOGLETEST_DEPS_DIR@
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
)
|
||||
|
||||
ExternalProject_Add(
|
||||
libuv
|
||||
GIT_REPOSITORY https://github.com/libuv/libuv.git
|
||||
GIT_TAG v1.22.0
|
||||
SOURCE_DIR @LIBUV_DEPS_DIR@
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
)
|
||||
@ -1,19 +0,0 @@
|
||||
project(googletest-download NONE)
|
||||
cmake_minimum_required(VERSION 3.2)
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
ExternalProject_Add(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG master
|
||||
DOWNLOAD_DIR ${GOOGLETEST_DEPS_DIR}
|
||||
TMP_DIR ${GOOGLETEST_DEPS_DIR}/tmp
|
||||
STAMP_DIR ${GOOGLETEST_DEPS_DIR}/stamp
|
||||
SOURCE_DIR ${GOOGLETEST_DEPS_DIR}/src
|
||||
BINARY_DIR ${GOOGLETEST_DEPS_DIR}/build
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
)
|
||||
@ -1,37 +0,0 @@
|
||||
project(libuv-download NONE)
|
||||
cmake_minimum_required(VERSION 3.2)
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add(
|
||||
libuv
|
||||
GIT_REPOSITORY https://github.com/libuv/libuv.git
|
||||
GIT_TAG v1.22.0
|
||||
DOWNLOAD_DIR ${LIBUV_DEPS_DIR}
|
||||
TMP_DIR ${LIBUV_DEPS_DIR}/tmp
|
||||
STAMP_DIR ${LIBUV_DEPS_DIR}/stamp
|
||||
SOURCE_DIR ${LIBUV_DEPS_DIR}/src
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND <SOURCE_DIR>/vcbuild.bat release x86 shared
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add(
|
||||
libuv
|
||||
GIT_REPOSITORY https://github.com/libuv/libuv.git
|
||||
GIT_TAG v1.21.0
|
||||
DOWNLOAD_DIR ${LIBUV_DEPS_DIR}
|
||||
TMP_DIR ${LIBUV_DEPS_DIR}/tmp
|
||||
STAMP_DIR ${LIBUV_DEPS_DIR}/stamp
|
||||
SOURCE_DIR ${LIBUV_DEPS_DIR}/src
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND sh <SOURCE_DIR>/autogen.sh
|
||||
COMMAND sh <SOURCE_DIR>/configure
|
||||
BUILD_COMMAND make -j4
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
)
|
||||
endif()
|
||||
@ -14,7 +14,7 @@ set(
|
||||
COMMON_LINK_LIBS
|
||||
gtest_main
|
||||
${LIBRT}
|
||||
${libuv_static}
|
||||
uv_a
|
||||
Threads::Threads
|
||||
${WINSOCK2}
|
||||
)
|
||||
@ -41,7 +41,7 @@ endmacro()
|
||||
macro(ADD_UVW_LIB_TEST TEST_NAME TEST_SOURCE)
|
||||
ADD_UVW_TEST(${TEST_NAME} ${TEST_SOURCE})
|
||||
target_link_libraries(${TEST_NAME} PRIVATE ${CMAKE_DL_LIBS})
|
||||
target_compile_definitions(${TEST_NAME} PRIVATE TARGET_LIB_SO="${libuv_shared}")
|
||||
target_compile_definitions(${TEST_NAME} PRIVATE TARGET_LIB_SO="$<TARGET_FILE:uv>")
|
||||
endmacro()
|
||||
|
||||
# List of available targets
|
||||
|
||||
Loading…
Reference in New Issue
Block a user