diff --git a/CMakeLists.txt b/CMakeLists.txt index 65a00bfd..bd1e2777 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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() diff --git a/cmake/in/deps.in b/cmake/in/deps.in new file mode 100644 index 00000000..8eb0ae90 --- /dev/null +++ b/cmake/in/deps.in @@ -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 "" +) diff --git a/cmake/in/googletest.in b/cmake/in/googletest.in deleted file mode 100644 index ab1f6e3f..00000000 --- a/cmake/in/googletest.in +++ /dev/null @@ -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 "" -) diff --git a/cmake/in/libuv.in b/cmake/in/libuv.in deleted file mode 100644 index 16f34da1..00000000 --- a/cmake/in/libuv.in +++ /dev/null @@ -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 /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 /autogen.sh - COMMAND sh /configure - BUILD_COMMAND make -j4 - INSTALL_COMMAND "" - TEST_COMMAND "" - ) -endif() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2ad99087..83ea23ae 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -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="$") endmacro() # List of available targets