From f6d0fd976abad6084a79a73afeffb3c52b1a91ba Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Wed, 24 May 2017 17:13:40 +0200 Subject: [PATCH] deps.sh is no longer required + added Utilities::setupArgs --- .gitmodules | 6 -- .travis.yml | 1 - CMakeLists.txt | 26 ++++++-- appveyor.yml | 1 - cmake/in/googletest.in | 16 +++++ cmake/in/libuv.in | 16 +++++ cmake/modules/FindGoogleTest.cmake | 96 ------------------------------ cmake/modules/FindLibRt.cmake | 9 +-- cmake/modules/FindUV.cmake | 67 --------------------- deps.bat | 37 ------------ deps.sh | 46 -------------- deps/googletest | 1 - deps/libuv | 1 - src/uvw/util.hpp | 11 ++++ test/CMakeLists.txt | 54 ++++++++--------- test/uvw/util.cpp | 6 ++ 16 files changed, 99 insertions(+), 295 deletions(-) delete mode 100644 .gitmodules create mode 100644 cmake/in/googletest.in create mode 100644 cmake/in/libuv.in delete mode 100644 cmake/modules/FindGoogleTest.cmake delete mode 100644 cmake/modules/FindUV.cmake delete mode 100644 deps.bat delete mode 100755 deps.sh delete mode 160000 deps/googletest delete mode 160000 deps/libuv diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e592f1d6..00000000 --- a/.gitmodules +++ /dev/null @@ -1,6 +0,0 @@ -[submodule "deps/googletest"] - path = deps/googletest - url = https://github.com/google/googletest.git -[submodule "deps/libuv"] - path = deps/libuv - url = https://github.com/libuv/libuv.git diff --git a/.travis.yml b/.travis.yml index 13cfd900..b5ca9eea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,7 +45,6 @@ install: - echo ${CXX} - ${CXX} --version - ${CXX} -v -- ./deps.sh script: - mkdir -p build && cd build diff --git a/CMakeLists.txt b/CMakeLists.txt index cb2b0841..7374cee7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,6 +64,7 @@ add_definitions( # set(PROJECT_CMAKE_MODULES cmake/modules) +set(PROJECT_CMAKE_IN cmake/in) set(PROJECT_BUILD_DIR build) set(PROJECT_DEPS_DIR deps) set(PROJECT_DOCS_DIR docs) @@ -92,12 +93,29 @@ include(CTest) set(THREADS_PREFER_PTHREAD_FLAG ON) -find_package(UV REQUIRED) find_package(Threads REQUIRED) -find_package(GoogleTest) find_package(Doxygen 1.8) find_package(LibRt) +# +# Download and unpack dependencies +# + +# gtest, gtest_main, gmock and gmock_main targets are available from now on +configure_file(${PROJECT_CMAKE_IN}/googletest.in googletest-download/CMakeLists.txt) +execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download) +execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download) +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +include_directories(${gtest_SOURCE_DIR}/include ${gmock_SOURCE_DIR}/include) +add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src ${CMAKE_BINARY_DIR}/googletest-build) + +configure_file(${PROJECT_CMAKE_IN}/libuv.in libuv-download/CMakeLists.txt) +execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/libuv-download) +execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/libuv-download) +include_directories(${CMAKE_BINARY_DIR}/libuv-src/include) +find_library(libuv_static NAMES libuv.a libuv PATHS ${CMAKE_BINARY_DIR}/libuv-src PATH_SUFFIXES .libs Release NO_DEFAULT_PATH) +find_library(libuv_shared NAMES uv libuv PATHS ${CMAKE_BINARY_DIR}/libuv-src PATH_SUFFIXES .libs Release NO_DEFAULT_PATH) + # # Referenced directories and targets # @@ -106,9 +124,7 @@ if(${DOXYGEN_FOUND}) add_subdirectory(${PROJECT_DOCS_DIR}) endif(${DOXYGEN_FOUND}) -if(${GOOGLETEST_FOUND}) - add_subdirectory(${PROJECT_TEST_DIR}) -endif(${GOOGLETEST_FOUND}) +add_subdirectory(${PROJECT_TEST_DIR}) # # Keep your stuff and go further away, foolish. diff --git a/appveyor.yml b/appveyor.yml index 8db01051..277537c5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -14,7 +14,6 @@ configuration: - Release before_build: - - deps.bat - cd %BUILD_DIR% - cmake .. -G"%CMAKE_GENERATOR_NAME%" diff --git a/cmake/in/googletest.in b/cmake/in/googletest.in new file mode 100644 index 00000000..3db898cc --- /dev/null +++ b/cmake/in/googletest.in @@ -0,0 +1,16 @@ +project(googletest-download NONE) +cmake_minimum_required(VERSION 3.4) + +include(ExternalProject) + +ExternalProject_Add( + googletest + GIT_REPOSITORY https://github.com/google/googletest.git + GIT_TAG master + SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src" + BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" +) diff --git a/cmake/in/libuv.in b/cmake/in/libuv.in new file mode 100644 index 00000000..c191e2f1 --- /dev/null +++ b/cmake/in/libuv.in @@ -0,0 +1,16 @@ +project(libuv-download NONE) +cmake_minimum_required(VERSION 3.4) + +include(ExternalProject) + +ExternalProject_Add( + libuv + GIT_REPOSITORY https://github.com/libuv/libuv.git + GIT_TAG v1.x + SOURCE_DIR ${CMAKE_BINARY_DIR}/libuv-src + BUILD_IN_SOURCE 1 + CONFIGURE_COMMAND sh /autogen.sh && ./configure + BUILD_COMMAND make -j4 + INSTALL_COMMAND "" + TEST_COMMAND "" +) diff --git a/cmake/modules/FindGoogleTest.cmake b/cmake/modules/FindGoogleTest.cmake deleted file mode 100644 index b122fbed..00000000 --- a/cmake/modules/FindGoogleTest.cmake +++ /dev/null @@ -1,96 +0,0 @@ -# FindGoogleTest -# --------- -# -# Locate Google Test Framework -# -# This module defines: -# -# :: -# -# GOOGLETEST_INCLUDE_DIRS, where to find the headers -# GOOGLETEST_LIBRARIES, the libraries against which to link -# GOOGLETEST_FOUND, if false, do not try to use the above mentioned vars -# - -set(BUILD_DEPS_DIR ${CMAKE_SOURCE_DIR}/${PROJECT_DEPS_DIR}) -set(GOOGLETEST_DEPS_DIR googletest) - -find_path( - GOOGLETEST_INCLUDE_DIR NAMES gtest/gtest.h - PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/googletest/include/ - NO_DEFAULT_PATH -) - -find_path( - GOOGLEMOCK_INCLUDE_DIR NAMES gmock/gmock.h - PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/googlemock/include/ - NO_DEFAULT_PATH -) - -find_library( - GOOGLETEST_LIBRARY NAMES gtest - PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/build/googlemock/gtest/ - PATH_SUFFIXES Release - NO_DEFAULT_PATH -) - -find_library( - GOOGLETEST_MAIN_LIBRARY NAMES gtest_main - PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/build/googlemock/gtest/ - PATH_SUFFIXES Release - NO_DEFAULT_PATH -) - -find_library( - GOOGLEMOCK_LIBRARY NAMES gmock - PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/build/googlemock/ - PATH_SUFFIXES Release - NO_DEFAULT_PATH -) - -find_library( - GOOGLEMOCK_MAIN_LIBRARY NAMES gmock_main - PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/build/googlemock/ - PATH_SUFFIXES Release - NO_DEFAULT_PATH -) - -include(FindPackageHandleStandardArgs) - -find_package_handle_standard_args( - GOOGLETEST - FOUND_VAR GOOGLETEST_FOUND - REQUIRED_VARS - GOOGLETEST_LIBRARY - GOOGLETEST_MAIN_LIBRARY - GOOGLEMOCK_LIBRARY - GOOGLEMOCK_MAIN_LIBRARY - GOOGLETEST_INCLUDE_DIR - GOOGLEMOCK_INCLUDE_DIR -) - -if(GOOGLETEST_FOUND) - set( - GOOGLETEST_LIBRARIES - ${GOOGLETEST_LIBRARY} - ${GOOGLETEST_MAIN_LIBRARY} - ${GOOGLEMOCK_LIBRARY} - ${GOOGLEMOCK_MAIN_LIBRARY} - ) - - set( - GOOGLETEST_INCLUDE_DIRS - ${GOOGLETEST_INCLUDE_DIR} - ${GOOGLEMOCK_INCLUDE_DIR} - ) -endif(GOOGLETEST_FOUND) - - -mark_as_advanced( - GOOGLETEST_INCLUDE_DIR - GOOGLEMOCK_INCLUDE_DIR - GOOGLETEST_LIBRARY - GOOGLETEST_MAIN_LIBRARY - GOOGLEMOCK_LIBRARY - GOOGLEMOCK_MAIN_LIBRARY -) diff --git a/cmake/modules/FindLibRt.cmake b/cmake/modules/FindLibRt.cmake index caf7ac2b..f9e7b49f 100644 --- a/cmake/modules/FindLibRt.cmake +++ b/cmake/modules/FindLibRt.cmake @@ -20,12 +20,13 @@ # A user may set ``LIBRT_ROOT`` to a realtime installation root to tell this # module where to look. -find_path(LIBRT_INCLUDE_DIRS - NAMES time.h - PATHS ${LIBRT_ROOT}/include/ +find_path( + LIBRT_INCLUDE_DIRS + NAMES time.h + PATHS ${LIBRT_ROOT}/include/ ) + find_library(LIBRT_LIBRARIES rt) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(LibRt DEFAULT_MSG LIBRT_LIBRARIES LIBRT_INCLUDE_DIRS) mark_as_advanced(LIBRT_INCLUDE_DIRS LIBRT_LIBRARIES) - diff --git a/cmake/modules/FindUV.cmake b/cmake/modules/FindUV.cmake deleted file mode 100644 index c72bca5c..00000000 --- a/cmake/modules/FindUV.cmake +++ /dev/null @@ -1,67 +0,0 @@ -# FindUV -# --------- -# -# Locate libuv -# -# This module defines: -# -# :: -# -# UV_INCLUDE_DIRS, where to find the headers -# UV_LIBRARIES, the libraries against which to link -# UV_FOUND, if false, do not try to use the above mentioned vars -# - -set(BUILD_DEPS_DIR ${CMAKE_SOURCE_DIR}/${PROJECT_DEPS_DIR}) -set(UV_DEPS_DIR libuv) - -find_path( - UV_INCLUDE_DIR NAMES uv.h - PATHS ${BUILD_DEPS_DIR}/${UV_DEPS_DIR}/include/ - NO_DEFAULT_PATH -) - -find_library( - UV_STATIC_LIBRARY NAMES libuv.a libuv - PATHS ${BUILD_DEPS_DIR}/${UV_DEPS_DIR} - PATH_SUFFIXES .libs Release - NO_DEFAULT_PATH -) - -find_library( - UV_SHARED_LIBRARY NAMES uv libuv - PATHS ${BUILD_DEPS_DIR}/${UV_DEPS_DIR} - PATH_SUFFIXES .libs Release - NO_DEFAULT_PATH -) - -include(FindPackageHandleStandardArgs) - -find_package_handle_standard_args( - UV - FOUND_VAR UV_FOUND - REQUIRED_VARS - UV_STATIC_LIBRARY - UV_SHARED_LIBRARY - UV_INCLUDE_DIR -) - -if(UV_FOUND) - set( - UV_LIBRARIES - ${UV_STATIC_LIBRARY} - ${UV_SHARED_LIBRARY} - ) - - set( - UV_INCLUDE_DIRS - ${UV_INCLUDE_DIR} - ) -endif(UV_FOUND) - - -mark_as_advanced( - UV_INCLUDE_DIR - UV_STATIC_LIBRARY - UV_SHARED_LIBRARY -) diff --git a/deps.bat b/deps.bat deleted file mode 100644 index 6d53eb44..00000000 --- a/deps.bat +++ /dev/null @@ -1,37 +0,0 @@ -@echo off - -set SRC_DIR=%~dp0 - -if not defined ARCH set ARCH=x86 -if defined platform if "%platform%"=="x64" set ARCH=x64 - -@rem init/update submodules -cd %SRC_DIR% -git submodule update --init - -@rem compile dependencies - -@rem uv first because vcbuild.bat gives us good things like: -@rem - msbuild in PATH -@rem - variables like config, msbuild_platform - -cd %SRC_DIR%deps\libuv -@rem the arguments to vcbuild make all the difference to further builds -call vcbuild.bat release %ARCH% shared - -if "%msbuild_platform%"=="x64" ( - set CMAKE_GENERATOR_NAME=Visual Studio 14 2015 Win64 -) else ( - set CMAKE_GENERATOR_NAME=Visual Studio 14 2015 -) - -set GTEST_BUILD_DIR=%SRC_DIR%deps\googletest\build -if exist %GTEST_BUILD_DIR%\NUL rd /s /q %GTEST_BUILD_DIR% -md %GTEST_BUILD_DIR% -cd %GTEST_BUILD_DIR% -cmake .. -Dgtest_force_shared_crt=ON -G"%CMAKE_GENERATOR_NAME%" -msbuild googlemock\gmock.sln /p:Configuration=%config% /p:Platform="%msbuild_platform%" /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo /m -msbuild googlemock\gtest\gtest.sln /p:Configuration=%config% /p:Platform="%msbuild_platform%" /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo /m - -@rem go back home -cd %SRC_DIR% diff --git a/deps.sh b/deps.sh deleted file mode 100755 index 0b7f84d1..00000000 --- a/deps.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash - -# -# google docet - jump within the directory which contains this script -# - -SOURCE="${BASH_SOURCE[0]}" - -while [ -h "$SOURCE" ]; do - DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)" - SOURCE="$(readlink "$SOURCE")" - [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" -done - -# -# set aside the base dir for future references -# - -DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)" - -# -# init/update submodules -# - -cd "$DIR" -git submodule update --init # --recursive - -# -# compile dependencies -# - -rm -rf "$DIR"/deps/googletest/build -mkdir "$DIR"/deps/googletest/build -cd "$DIR"/deps/googletest/build -cmake .. && make -j4 - -cd "$DIR"/deps/libuv -sh autogen.sh -./configure -make -j4 - -# -# go back home -# - -cd "$DIR" diff --git a/deps/googletest b/deps/googletest deleted file mode 160000 index 0a439623..00000000 --- a/deps/googletest +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0a439623f75c029912728d80cb7f1b8b48739ca4 diff --git a/deps/libuv b/deps/libuv deleted file mode 160000 index 2fc54807..00000000 --- a/deps/libuv +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2fc54807fca6d3d3022d23fda6d3c060ebbc5be1 diff --git a/src/uvw/util.hpp b/src/uvw/util.hpp index fdb7f1de..38761d3d 100644 --- a/src/uvw/util.hpp +++ b/src/uvw/util.hpp @@ -584,6 +584,17 @@ struct Utilities { return avg; } + /** + * @brief Store the program arguments. + * + * Required for getting / setting the process title. + * + * @return Arguments that haven't been consumed internally. + */ + static char ** setupArgs(int argc, char** argv) { + return uv_setup_args(argc, argv); + } + /** * @brief Gets the title of the current process. * @return The process title. diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 808d2e17..13807b4c 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -4,17 +4,11 @@ set(UVW_SRC_DIR ${CMAKE_SOURCE_DIR}/${PROJECT_SRC_DIR}) -set( - COMMON_INCLUDE_DIRS - ${UVW_SRC_DIR} - ${GOOGLETEST_INCLUDE_DIRS} - ${UV_INCLUDE_DIRS} -) - set( COMMON_LINK_LIBS - ${GOOGLETEST_LIBRARIES} - ${UV_STATIC_LIBRARY} + gtest + gtest_main + ${libuv_static} Threads::Threads ) @@ -27,7 +21,7 @@ if(WIN32) endif(WIN32) add_library(odr OBJECT odr.cpp) -target_include_directories(odr PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(odr PRIVATE ${UVW_SRC_DIR}) # List of available targets @@ -56,7 +50,7 @@ set(TARGET_WORK work) set(TARGET_MAIN_SOURCES $ main.cpp) add_executable(${TARGET_MAIN} ${TARGET_MAIN_SOURCES}) -target_include_directories(${TARGET_MAIN} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_MAIN} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_MAIN} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_MAIN} COMMAND ${TARGET_MAIN}) @@ -64,7 +58,7 @@ add_test(NAME ${TARGET_MAIN} COMMAND ${TARGET_MAIN}) set(TARGET_ASYNC_SOURCES $ uvw/async.cpp) add_executable(${TARGET_ASYNC} ${TARGET_ASYNC_SOURCES}) -target_include_directories(${TARGET_ASYNC} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_ASYNC} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_ASYNC} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_ASYNC} COMMAND ${TARGET_ASYNC}) @@ -72,7 +66,7 @@ add_test(NAME ${TARGET_ASYNC} COMMAND ${TARGET_ASYNC}) set(TARGET_CHECK_SOURCES $ uvw/check.cpp) add_executable(${TARGET_CHECK} ${TARGET_CHECK_SOURCES}) -target_include_directories(${TARGET_CHECK} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_CHECK} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_CHECK} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_CHECK} COMMAND ${TARGET_CHECK}) @@ -80,7 +74,7 @@ add_test(NAME ${TARGET_CHECK} COMMAND ${TARGET_CHECK}) set(TARGET_DNS_SOURCES $ uvw/dns.cpp) add_executable(${TARGET_DNS} ${TARGET_DNS_SOURCES}) -target_include_directories(${TARGET_DNS} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_DNS} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_DNS} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_DNS} COMMAND ${TARGET_DNS}) @@ -88,7 +82,7 @@ add_test(NAME ${TARGET_DNS} COMMAND ${TARGET_DNS}) set(TARGET_EMITTER_SOURCES $ uvw/emitter.cpp) add_executable(${TARGET_EMITTER} ${TARGET_EMITTER_SOURCES}) -target_include_directories(${TARGET_EMITTER} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_EMITTER} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_EMITTER} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_EMITTER} COMMAND ${TARGET_EMITTER}) @@ -98,7 +92,7 @@ set(TARGET_FS_REQ_SOURCES $ uvw/fs_req.cpp) set(TARGET_FS_REQ_DIR ${CMAKE_CURRENT_BINARY_DIR}/fs_req) file(MAKE_DIRECTORY ${TARGET_FS_REQ_DIR}) add_executable(${TARGET_FS_REQ} ${TARGET_FS_REQ_SOURCES}) -target_include_directories(${TARGET_FS_REQ} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_FS_REQ} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_FS_REQ} PRIVATE ${COMMON_LINK_LIBS}) target_compile_definitions(${TARGET_FS_REQ} PRIVATE TARGET_FS_REQ_DIR="${TARGET_FS_REQ_DIR}") add_test(NAME ${TARGET_FS_REQ} COMMAND ${TARGET_FS_REQ}) @@ -109,7 +103,7 @@ set(TARGET_FILE_REQ_SOURCES $ uvw/file_req.cpp) set(TARGET_FILE_REQ_DIR ${CMAKE_CURRENT_BINARY_DIR}/file_req) file(MAKE_DIRECTORY ${TARGET_FILE_REQ_DIR}) add_executable(${TARGET_FILE_REQ} ${TARGET_FILE_REQ_SOURCES}) -target_include_directories(${TARGET_FILE_REQ} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_FILE_REQ} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_FILE_REQ} PRIVATE ${COMMON_LINK_LIBS}) target_compile_definitions(${TARGET_FILE_REQ} PRIVATE TARGET_FILE_REQ_DIR="${TARGET_FILE_REQ_DIR}") add_test(NAME ${TARGET_FILE_REQ} COMMAND ${TARGET_FILE_REQ}) @@ -118,7 +112,7 @@ add_test(NAME ${TARGET_FILE_REQ} COMMAND ${TARGET_FILE_REQ}) set(TARGET_HANDLE_SOURCES $ uvw/handle.cpp) add_executable(${TARGET_HANDLE} ${TARGET_HANDLE_SOURCES}) -target_include_directories(${TARGET_HANDLE} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_HANDLE} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_HANDLE} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_HANDLE} COMMAND ${TARGET_HANDLE}) @@ -126,7 +120,7 @@ add_test(NAME ${TARGET_HANDLE} COMMAND ${TARGET_HANDLE}) set(TARGET_IDLE_SOURCES $ uvw/idle.cpp) add_executable(${TARGET_IDLE} ${TARGET_IDLE_SOURCES}) -target_include_directories(${TARGET_IDLE} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_IDLE} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_IDLE} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_IDLE} COMMAND ${TARGET_IDLE}) @@ -134,7 +128,7 @@ add_test(NAME ${TARGET_IDLE} COMMAND ${TARGET_IDLE}) set(TARGET_LOOP_SOURCES $ uvw/loop.cpp) add_executable(${TARGET_LOOP} ${TARGET_LOOP_SOURCES}) -target_include_directories(${TARGET_LOOP} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_LOOP} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_LOOP} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_LOOP} COMMAND ${TARGET_LOOP}) @@ -142,7 +136,7 @@ add_test(NAME ${TARGET_LOOP} COMMAND ${TARGET_LOOP}) set(TARGET_PREPARE_SOURCES $ uvw/prepare.cpp) add_executable(${TARGET_PREPARE} ${TARGET_PREPARE_SOURCES}) -target_include_directories(${TARGET_PREPARE} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_PREPARE} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_PREPARE} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_PREPARE} COMMAND ${TARGET_PREPARE}) @@ -150,14 +144,14 @@ add_test(NAME ${TARGET_PREPARE} COMMAND ${TARGET_PREPARE}) set(TARGET_REQUEST_SOURCES $ uvw/request.cpp) add_executable(${TARGET_REQUEST} ${TARGET_REQUEST_SOURCES}) -target_include_directories(${TARGET_REQUEST} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_REQUEST} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_REQUEST} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_REQUEST} COMMAND ${TARGET_REQUEST}) # Test TARGET_RESOURCE set(TARGET_RESOURCE_SOURCES $ uvw/resource.cpp) add_executable(${TARGET_RESOURCE} ${TARGET_RESOURCE_SOURCES}) -target_include_directories(${TARGET_RESOURCE} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_RESOURCE} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_RESOURCE} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_RESOURCE} COMMAND ${TARGET_RESOURCE}) @@ -165,7 +159,7 @@ add_test(NAME ${TARGET_RESOURCE} COMMAND ${TARGET_RESOURCE}) set(TARGET_SIGNAL_SOURCES $ uvw/signal.cpp) add_executable(${TARGET_SIGNAL} ${TARGET_SIGNAL_SOURCES}) -target_include_directories(${TARGET_SIGNAL} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_SIGNAL} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_SIGNAL} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_SIGNAL} COMMAND ${TARGET_SIGNAL}) @@ -173,7 +167,7 @@ add_test(NAME ${TARGET_SIGNAL} COMMAND ${TARGET_SIGNAL}) set(TARGET_TCP_SOURCES $ uvw/tcp.cpp) add_executable(${TARGET_TCP} ${TARGET_TCP_SOURCES}) -target_include_directories(${TARGET_TCP} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_TCP} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_TCP} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_TCP} COMMAND ${TARGET_TCP}) @@ -181,7 +175,7 @@ add_test(NAME ${TARGET_TCP} COMMAND ${TARGET_TCP}) set(TARGET_TIMER_SOURCES $ uvw/timer.cpp) add_executable(${TARGET_TIMER} ${TARGET_TIMER_SOURCES}) -target_include_directories(${TARGET_TIMER} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_TIMER} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_TIMER} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_TIMER} COMMAND ${TARGET_TIMER}) @@ -189,7 +183,7 @@ add_test(NAME ${TARGET_TIMER} COMMAND ${TARGET_TIMER}) set(TARGET_TTY_SOURCES $ uvw/tty.cpp) add_executable(${TARGET_TTY} ${TARGET_TTY_SOURCES}) -target_include_directories(${TARGET_TTY} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_TTY} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_TTY} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_TTY} COMMAND ${TARGET_TTY}) @@ -197,7 +191,7 @@ add_test(NAME ${TARGET_TTY} COMMAND ${TARGET_TTY}) set(TARGET_UDP_SOURCES $ uvw/udp.cpp) add_executable(${TARGET_UDP} ${TARGET_UDP_SOURCES}) -target_include_directories(${TARGET_UDP} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_UDP} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_UDP} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_UDP} COMMAND ${TARGET_UDP}) @@ -205,7 +199,7 @@ add_test(NAME ${TARGET_UDP} COMMAND ${TARGET_UDP}) set(TARGET_UTIL_SOURCES $ uvw/util.cpp) add_executable(${TARGET_UTIL} ${TARGET_UTIL_SOURCES}) -target_include_directories(${TARGET_UTIL} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_UTIL} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_UTIL} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_UTIL} COMMAND ${TARGET_UTIL}) @@ -213,6 +207,6 @@ add_test(NAME ${TARGET_UTIL} COMMAND ${TARGET_UTIL}) set(TARGET_WORK_SOURCES $ uvw/work.cpp) add_executable(${TARGET_WORK} ${TARGET_WORK_SOURCES}) -target_include_directories(${TARGET_WORK} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_include_directories(${TARGET_WORK} PRIVATE ${UVW_SRC_DIR}) target_link_libraries(${TARGET_WORK} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_WORK} COMMAND ${TARGET_WORK}) diff --git a/test/uvw/util.cpp b/test/uvw/util.cpp index dd407477..46cab26d 100644 --- a/test/uvw/util.cpp +++ b/test/uvw/util.cpp @@ -1,3 +1,4 @@ +#include #include #include @@ -100,6 +101,11 @@ TEST(Util, Utilities) { ASSERT_FALSE(uvw::Utilities::cwd().empty()); ASSERT_TRUE(uvw::Utilities::chdir(uvw::Utilities::cwd())); + std::unique_ptr fake{new char[1], [](void *ptr) { delete[] static_cast(ptr); }}; + char *argv = fake.get(); + argv[0] = '\0'; + + ASSERT_NE(uvw::Utilities::setupArgs(1, &argv), nullptr); ASSERT_NE(uvw::Utilities::processTitle(), std::string{}); ASSERT_TRUE(uvw::Utilities::processTitle(uvw::Utilities::processTitle())); }