From f33182541a0aa6062cf000b3e85c01730f18dcfb Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Tue, 12 Apr 2022 03:01:00 -0700 Subject: [PATCH 01/12] initial commit for building through CMake in Windows --- CMakeLists.txt | 28 +++++++++++++++++++++++++++- tests/CMakeLists.txt | 13 +++++++++++++ tests/functests/CMakeLists.txt | 24 ++++++++++++++---------- tools/setup-buildtools.cmd | 8 +++++++- 4 files changed, 61 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f4a12b328..639a91ba2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,32 @@ set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation direc set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") +function(install_windows_deps) + # Bootstrap vcpkg from CMake and auto-install deps in case if we are missing + # deps on Windows. Respect the target architecture variable. + set(VCPKG_TARGET_ARCHITECTURE + ${ARCH} + PARENT_SCOPE) + message("Installing build tools and dependencies...") + set(ENV{ARCH} ${ARCH}) + execute_process( + COMMAND ${CMAKE_SOURCE_DIR}/tools/setup-buildtools.cmd) + set(CMAKE_TOOLCHAIN_FILE + ${CMAKE_SOURCE_DIR}/tools/vcpkg/scripts/buildsystems/vcpkg.cmake + PARENT_SCOPE) +endfunction() + +# Autodetect vcpkg toolchain +if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) + set(CMAKE_TOOLCHAIN_FILE + "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" + CACHE STRING "") +endif() + +if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE) + include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") +endif() + # Begin Uncomment for i386 build #set(CMAKE_SYSTEM_PROCESSOR i386) #set(CMAKE_C_FLAGS -m32) @@ -295,7 +321,7 @@ endif() # Packaging ################################################################################################ -if (BUILD_PACKAGE) +if (BUILD_PACKAGE AND (NOT WIN32)) if (${CMAKE_PACKAGE_TYPE} STREQUAL "deb") # FIXME: hardcode it for 64-bit Linux for now set(INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/${CPACK_DEBIAN_ARCHITECTURE}-linux-gnu) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a1d0a1351..efbe9b15f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -22,3 +22,16 @@ if(BUILD_UNIT_TESTS) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/unittests) add_subdirectory(unittests) endif() + +if (WIN32 AND (BUILD_FUNC_TESTS OR BUILD_UNIT_TEST)) +message("LALIT-->Checkig..") +find_package(GTest) +if(NOT (GTEST_FOUND OR GTest_FOUND)) + install_windows_deps() + if (NOT DEFINED CMAKE_TOOLCHAIN_FILE) + message(STATUS_FATAL "Windows dependency installation failed!") + endif() + message(STATUS ${CMAKE_TOOLCHAIN_FILE}) + find_package(GTest REQUIRED) +endif() +endif() diff --git a/tests/functests/CMakeLists.txt b/tests/functests/CMakeLists.txt index ba0e524e7..9e305f377 100644 --- a/tests/functests/CMakeLists.txt +++ b/tests/functests/CMakeLists.txt @@ -30,7 +30,7 @@ endif() if (EXISTS ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests) list(APPEND SRCS - ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests/functests/ECSClientFuncTests.cpp + ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests/functests/ECSClientFuncTestzlibs.cpp ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests/functests/ECSClientRealworldFuncTests.cpp ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests/functests/ECSConfigCacheFuncTests.cpp ) @@ -46,21 +46,25 @@ else() endif() if(PAL_IMPLEMENTATION STREQUAL "WIN32") + find_package(gtest REQUIRED) + find_package(sqlite3 REQUIRED) + find_package( ZLIB REQUIRED ) # Link against prebuilt libraries on Windows message("--- WIN32: Linking against prebuilt libraries") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gtest") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gmock") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/zlib") message("--- WIN32: ... ${CMAKE_BINARY_DIR}/sqlite") - # link_directories(${CMAKE_BINARY_DIR}/gtest/ ${CMAKE_BINARY_DIR}/gmock/ ${CMAKE_BINARY_DIR}/zlib/ ${CMAKE_BINARY_DIR}/sqlite/) - include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../../zlib ) + include_directories(SYSTEM ${GTEST_INCLUDE_DIRS}) + include_directories( ${ZLIB_INCLUDE_DIRS} ) + message("GTEST_INCLUDE_DIRS = ${GTEST_INCLUDE_DIRS}") + message("GTEST_BOTH_LIBRARIES = ${GTEST_BOTH_LIBRARIES}") + message("SQLITE3_LIBRARIES = ${SQLITE3_LIBRARIES}") + message("ZLIB_LIBRARIES = ${ZLIB_LIBRARIES}") + target_link_libraries(FuncTests mat wininet.lib - ${CMAKE_BINARY_DIR}/gtest/gtest.lib - ${CMAKE_BINARY_DIR}/gmock/gmock.lib - ${CMAKE_BINARY_DIR}/zlib/zlib.lib - ${CMAKE_BINARY_DIR}/sqlite/sqlite.lib + ${GTEST_BOTH_LIBRARIES} + ${SQLite3_LIBRARIES} + ${ZLIB_LIBRARIES} ) else() diff --git a/tools/setup-buildtools.cmd b/tools/setup-buildtools.cmd index 5c4705a15..6e9953fe0 100644 --- a/tools/setup-buildtools.cmd +++ b/tools/setup-buildtools.cmd @@ -17,7 +17,11 @@ if ERRORLEVEL 0 ( ) REM Install tools needed to build SDK with either Visual Studio or CMake -choco install -y cmake svn git llvm zip +where /Q vswhere || choco install -y vswhere +where /Q cmake || choco install -y cmake +where /Q git || choco install -y git +where /Q llvm || choco install -y llvm +where /Q zip || choco install -y zip REM Try to autodetect Visual Studio call "%~dp0\vcvars.cmd" @@ -55,6 +59,8 @@ REM Install it vcpkg install gtest:x64-windows vcpkg install --overlay-ports=%~dp0\ports benchmark:x64-windows vcpkg install ms-gsl:x64-windows +vcpkg install zlib:x64-windows +vcpkg install sqlite3:x64-windows if DEFINED INSTALL_LLVM ( REM Required for LLVM Clang build on Windows From 57f01579fe705ad970f2ac99dc34eea0d8d51514 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Tue, 12 Apr 2022 03:04:14 -0700 Subject: [PATCH 02/12] remove debug code --- tests/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index efbe9b15f..0b0219c35 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -24,7 +24,6 @@ if(BUILD_UNIT_TESTS) endif() if (WIN32 AND (BUILD_FUNC_TESTS OR BUILD_UNIT_TEST)) -message("LALIT-->Checkig..") find_package(GTest) if(NOT (GTEST_FOUND OR GTest_FOUND)) install_windows_deps() From 71d0f796a83b8a8eb2b1f698635eaa95dca8ad61 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Tue, 12 Apr 2022 03:06:02 -0700 Subject: [PATCH 03/12] more unwanted code --- tests/functests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/functests/CMakeLists.txt b/tests/functests/CMakeLists.txt index 9e305f377..b5441f1ad 100644 --- a/tests/functests/CMakeLists.txt +++ b/tests/functests/CMakeLists.txt @@ -30,7 +30,7 @@ endif() if (EXISTS ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests) list(APPEND SRCS - ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests/functests/ECSClientFuncTestzlibs.cpp + ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests/functests/ECSClientFuncTests.cpp ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests/functests/ECSClientRealworldFuncTests.cpp ${CMAKE_SOURCE_DIR}/lib/modules/exp/tests/functests/ECSConfigCacheFuncTests.cpp ) From 5530c788abd66be9ca2721578174cdcb9121cb1d Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Tue, 12 Apr 2022 22:07:45 -0700 Subject: [PATCH 04/12] fix --- tests/functests/CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/functests/CMakeLists.txt b/tests/functests/CMakeLists.txt index b5441f1ad..0353f4b91 100644 --- a/tests/functests/CMakeLists.txt +++ b/tests/functests/CMakeLists.txt @@ -47,16 +47,18 @@ endif() if(PAL_IMPLEMENTATION STREQUAL "WIN32") find_package(gtest REQUIRED) - find_package(sqlite3 REQUIRED) + find_package(SQLite3 REQUIRED) find_package( ZLIB REQUIRED ) # Link against prebuilt libraries on Windows message("--- WIN32: Linking against prebuilt libraries") message("--- WIN32: ... ${CMAKE_BINARY_DIR}/sqlite") - include_directories(SYSTEM ${GTEST_INCLUDE_DIRS}) + include_directories( ${GTEST_INCLUDE_DIRS} ) + include_directories( ${GMOCK_INCLUDE_DIRS} ) include_directories( ${ZLIB_INCLUDE_DIRS} ) + include_directories(${SQLite3_INCLUDE_DIRS} ) message("GTEST_INCLUDE_DIRS = ${GTEST_INCLUDE_DIRS}") message("GTEST_BOTH_LIBRARIES = ${GTEST_BOTH_LIBRARIES}") - message("SQLITE3_LIBRARIES = ${SQLITE3_LIBRARIES}") + message("SQLite3_LIBRARIES = ${SQLite3_LIBRARIES} ${SQLite3_INCLUDE_DIRS}") message("ZLIB_LIBRARIES = ${ZLIB_LIBRARIES}") target_link_libraries(FuncTests From 88ba9010fe740eea49e1e97897959e48f4bd345c Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Wed, 13 Apr 2022 00:00:59 -0700 Subject: [PATCH 05/12] more changes --- CMakeLists.txt | 7 ------- tests/CMakeLists.txt | 42 ++++++++++++++++++++++++------------------ 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 639a91ba2..cc1383280 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -280,13 +280,6 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") option(BUILD_APPLE_HTTP "Build Apple HTTP client" YES) endif() -if(BUILD_UNIT_TESTS OR BUILD_FUNC_TESTS) - message("Adding gtest") - add_library(gtest STATIC IMPORTED GLOBAL) - message("Adding gmock") - add_library(gmock STATIC IMPORTED GLOBAL) -endif() - if(BUILD_APPLE_HTTP) add_definitions(-DAPPLE_HTTP=1) endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0b0219c35..dbc4b8bef 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,9 +1,5 @@ include_directories(. ${CMAKE_CURRENT_SOURCE_DIR}/../lib/include/public ${CMAKE_CURRENT_SOURCE_DIR}/../lib/include/mat ${CMAKE_CURRENT_SOURCE_DIR}/../lib/decoder ${CMAKE_CURRENT_SOURCE_DIR}/../sqlite ) - -include_directories( - ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/googletest/googletest/include - ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/googletest/googlemock/include -) +message("-->Lalit tests") include_directories(../lib) @@ -14,23 +10,33 @@ set(TESTS_COMMON_SRCS ../../lib/decoder/PayloadDecoder.cpp ) +if (BUILD_FUNC_TESTS OR BUILD_UNIT_TEST) + if (WIN32) + find_package(GTest) + if(NOT (GTEST_FOUND OR GTest_FOUND)) + install_windows_deps() + if (NOT DEFINED CMAKE_TOOLCHAIN_FILE) + message(STATUS_FATAL "Windows dependency installation failed!") + endif() + message(STATUS ${CMAKE_TOOLCHAIN_FILE}) + find_package(GTest REQUIRED) + endif() + else() + message("Adding gtest") + add_library(gtest STATIC IMPORTED GLOBAL) + message("Adding gmock") + add_library(gmock STATIC IMPORTED GLOBAL) + include_directories( + ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/googletest/googletest/include + ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/googletest/googlemock/include + ) + endif() +endif() + if(BUILD_FUNC_TESTS) add_subdirectory(functests) endif() - if(BUILD_UNIT_TESTS) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/unittests) add_subdirectory(unittests) endif() - -if (WIN32 AND (BUILD_FUNC_TESTS OR BUILD_UNIT_TEST)) -find_package(GTest) -if(NOT (GTEST_FOUND OR GTest_FOUND)) - install_windows_deps() - if (NOT DEFINED CMAKE_TOOLCHAIN_FILE) - message(STATUS_FATAL "Windows dependency installation failed!") - endif() - message(STATUS ${CMAKE_TOOLCHAIN_FILE}) - find_package(GTest REQUIRED) -endif() -endif() From 224c84fff09a57b19fa933c3b1c80c608fceb072 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Wed, 13 Apr 2022 16:29:56 +0530 Subject: [PATCH 06/12] fix --- CMakeLists.txt | 4 ++++ lib/CMakeLists.txt | 9 ++++++++- tests/CMakeLists.txt | 2 +- tests/functests/CMakeLists.txt | 12 +++++++++++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cc1383280..f2ecd2308 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,6 +31,10 @@ if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE) include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") endif() +if (DEFINED CMAKE_TOOLCHAIN_FILE AND WIN32) + install_windows_deps() +endif() + # Begin Uncomment for i386 build #set(CMAKE_SYSTEM_PROCESSOR i386) #set(CMAKE_C_FLAGS -m32) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 1055d8ec1..b53a7a9e1 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -173,7 +173,14 @@ if(PAL_IMPLEMENTATION STREQUAL "CPP11") elseif(PAL_IMPLEMENTATION STREQUAL "WIN32") # Win32 Desktop for now. # TODO: define a separate PAL for Win10 cmake build -include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../zlib ${CMAKE_CURRENT_SOURCE_DIR}/../sqlite) +if (CMAKE_TOOLCHAIN_FILE) + find_package(SQLite3 REQUIRED) + find_package(ZLIB REQUIRED) + include_directories( ${ZLIB_INCLUDE_DIRS}) + include_directories(${SQLite3_INCLUDE_DIRS}) +else() + include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../zlib ${CMAKE_CURRENT_SOURCE_DIR}/../sqlite) +endif() add_definitions(-D_UNICODE -DUNICODE -DZLIB_WINAPI -DWIN32 -DMATSDK_PLATFORM_WINDOWS=1 -DMATSDK_SHARED_LIB=1 -D_UTC_SDK -D_CRT_SECURE_NO_WARNINGS -DUSE_BOND -D_WINDOWS -D_USRDLL -DWINVER=_WIN32_WINNT_WIN7) remove_definitions(-D_MBCS) list(APPEND SRCS diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index dbc4b8bef..46376dc17 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,7 +11,7 @@ set(TESTS_COMMON_SRCS ) if (BUILD_FUNC_TESTS OR BUILD_UNIT_TEST) - if (WIN32) + if (WIN32 AND CNAKE_TOOLCHAIN_FILE) find_package(GTest) if(NOT (GTEST_FOUND OR GTest_FOUND)) install_windows_deps() diff --git a/tests/functests/CMakeLists.txt b/tests/functests/CMakeLists.txt index 0353f4b91..1ecf060db 100644 --- a/tests/functests/CMakeLists.txt +++ b/tests/functests/CMakeLists.txt @@ -48,7 +48,12 @@ endif() if(PAL_IMPLEMENTATION STREQUAL "WIN32") find_package(gtest REQUIRED) find_package(SQLite3 REQUIRED) - find_package( ZLIB REQUIRED ) + find_package(ZLIB REQUIRED) + find_library(GOOGLE_MOCK gmock REQUIRED) + find_library(GOOGLE_MOCK_MAIN gmock_main REQUIRED) + find_library(GOOGLE_MOCKD gmockd REQUIRED) + find_library(GOOGLE_MOCK_MAIND gmock_maind REQUIRED) + add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY) # Link against prebuilt libraries on Windows message("--- WIN32: Linking against prebuilt libraries") message("--- WIN32: ... ${CMAKE_BINARY_DIR}/sqlite") @@ -58,15 +63,20 @@ if(PAL_IMPLEMENTATION STREQUAL "WIN32") include_directories(${SQLite3_INCLUDE_DIRS} ) message("GTEST_INCLUDE_DIRS = ${GTEST_INCLUDE_DIRS}") message("GTEST_BOTH_LIBRARIES = ${GTEST_BOTH_LIBRARIES}") + message("GOOGLE_MOCK = ${GOOGLE_MOCK} ${GOOGLE_MOCK_MAIN}") message("SQLite3_LIBRARIES = ${SQLite3_LIBRARIES} ${SQLite3_INCLUDE_DIRS}") message("ZLIB_LIBRARIES = ${ZLIB_LIBRARIES}") target_link_libraries(FuncTests mat wininet.lib + crypt32.lib ${GTEST_BOTH_LIBRARIES} + ${GOOGLE_MOCK} ${GOOGLE_MOCKD} + ${GOOGLE_MOCK_MAIN} ${GOOGLE_MOCK_MAIND} ${SQLite3_LIBRARIES} ${ZLIB_LIBRARIES} + ) else() From 03bf8b0f103bd549b9434f6dfee71f606ac5ce44 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Wed, 13 Apr 2022 17:25:21 +0530 Subject: [PATCH 07/12] fix unit-test --- CMakeLists.txt | 6 +- tests/CMakeLists.txt | 37 ++++++++---- tests/functests/CMakeLists.txt | 62 +++++++++----------- tests/unittests/CMakeLists.txt | 49 ++++++++++------ tests/unittests/EventPropertiesTests.cpp | 20 +++---- tests/unittests/OfflineStorageTests_Room.cpp | 9 +-- 6 files changed, 108 insertions(+), 75 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f2ecd2308..4c6c3520d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,7 +32,11 @@ if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE) endif() if (DEFINED CMAKE_TOOLCHAIN_FILE AND WIN32) - install_windows_deps() + find_package(GTest) + if(NOT (GTEST_FOUND OR GTest_FOUND)) + install_windows_deps() + endif() + find_package(GTest REQUIRED) endif() # Begin Uncomment for i386 build diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 46376dc17..7b7116d1c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,16 +11,33 @@ set(TESTS_COMMON_SRCS ) if (BUILD_FUNC_TESTS OR BUILD_UNIT_TEST) - if (WIN32 AND CNAKE_TOOLCHAIN_FILE) - find_package(GTest) - if(NOT (GTEST_FOUND OR GTest_FOUND)) - install_windows_deps() - if (NOT DEFINED CMAKE_TOOLCHAIN_FILE) - message(STATUS_FATAL "Windows dependency installation failed!") - endif() - message(STATUS ${CMAKE_TOOLCHAIN_FILE}) - find_package(GTest REQUIRED) - endif() + if (WIN32 AND CMAKE_TOOLCHAIN_FILE) + find_package(gtest REQUIRED) + find_package(SQLite3 REQUIRED) + find_package(ZLIB REQUIRED) + + # GMOCK is not included as part of GTEST package installed through vcpkg, + # so needs to be configured separately + find_library(GOOGLE_MOCK gmock REQUIRED) + find_library(GOOGLE_MOCK_MAIN gmock_main REQUIRED) + find_library(GOOGLE_MOCKD gmockd REQUIRED) + find_library(GOOGLE_MOCK_MAIND gmock_maind REQUIRED) + + # GMOCK doesn't work with static linking. + add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY) + + message("GTEST_INCLUDE_DIRS = ${GTEST_INCLUDE_DIRS}") + message("GTEST_BOTH_LIBRARIES = ${GTEST_BOTH_LIBRARIES}") + message("GOOGLE_MOCK = ${GOOGLE_MOCK} ${GOOGLE_MOCK_MAIN}") + message("SQLite3_LIBRARIES = ${SQLite3_LIBRARIES} ${SQLite3_INCLUDE_DIRS}") + message("ZLIB_LIBRARIES = ${ZLIB_LIBRARIES}") + + #Include headers to be used both for unit and functional tests + include_directories( ${GTEST_INCLUDE_DIRS} ) + include_directories( ${GMOCK_INCLUDE_DIRS} ) + include_directories( ${ZLIB_INCLUDE_DIRS} ) + include_directories(${SQLite3_INCLUDE_DIRS} ) + else() message("Adding gtest") add_library(gtest STATIC IMPORTED GLOBAL) diff --git a/tests/functests/CMakeLists.txt b/tests/functests/CMakeLists.txt index 1ecf060db..8c0b13b44 100644 --- a/tests/functests/CMakeLists.txt +++ b/tests/functests/CMakeLists.txt @@ -46,40 +46,36 @@ else() endif() if(PAL_IMPLEMENTATION STREQUAL "WIN32") - find_package(gtest REQUIRED) - find_package(SQLite3 REQUIRED) - find_package(ZLIB REQUIRED) - find_library(GOOGLE_MOCK gmock REQUIRED) - find_library(GOOGLE_MOCK_MAIN gmock_main REQUIRED) - find_library(GOOGLE_MOCKD gmockd REQUIRED) - find_library(GOOGLE_MOCK_MAIND gmock_maind REQUIRED) - add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY) - # Link against prebuilt libraries on Windows - message("--- WIN32: Linking against prebuilt libraries") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/sqlite") - include_directories( ${GTEST_INCLUDE_DIRS} ) - include_directories( ${GMOCK_INCLUDE_DIRS} ) - include_directories( ${ZLIB_INCLUDE_DIRS} ) - include_directories(${SQLite3_INCLUDE_DIRS} ) - message("GTEST_INCLUDE_DIRS = ${GTEST_INCLUDE_DIRS}") - message("GTEST_BOTH_LIBRARIES = ${GTEST_BOTH_LIBRARIES}") - message("GOOGLE_MOCK = ${GOOGLE_MOCK} ${GOOGLE_MOCK_MAIN}") - message("SQLite3_LIBRARIES = ${SQLite3_LIBRARIES} ${SQLite3_INCLUDE_DIRS}") - message("ZLIB_LIBRARIES = ${ZLIB_LIBRARIES}") - - target_link_libraries(FuncTests - mat - wininet.lib - crypt32.lib - ${GTEST_BOTH_LIBRARIES} - ${GOOGLE_MOCK} ${GOOGLE_MOCKD} - ${GOOGLE_MOCK_MAIN} ${GOOGLE_MOCK_MAIND} - ${SQLite3_LIBRARIES} - ${ZLIB_LIBRARIES} - - ) + if (CMAKE_TOOLCHAIN_FILE) + target_link_libraries(FuncTests + mat + wininet.lib + crypt32.lib + ${GTEST_BOTH_LIBRARIES} + ${GOOGLE_MOCK} ${GOOGLE_MOCKD} + ${GOOGLE_MOCK_MAIN} ${GOOGLE_MOCK_MAIND} + ${SQLite3_LIBRARIES} + ${ZLIB_LIBRARIES} + ) + else() + # Link against prebuilt libraries on Windows + message("--- WIN32: Linking against prebuilt libraries") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gtest") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gmock") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/zlib") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/sqlite") + # link_directories(${CMAKE_BINARY_DIR}/gtest/ ${CMAKE_BINARY_DIR}/gmock/ ${CMAKE_BINARY_DIR}/zlib/ ${CMAKE_BINARY_DIR}/sqlite/) + include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../../zlib ) + target_link_libraries(FuncTests + mat + wininet.lib + ${CMAKE_BINARY_DIR}/gtest/gtest.lib + ${CMAKE_BINARY_DIR}/gmock/gmock.lib + ${CMAKE_BINARY_DIR}/zlib/zlib.lib + ${CMAKE_BINARY_DIR}/sqlite/sqlite.lib + ) + endif() else() - # Prefer linking to more recent local sqlite3 if(EXISTS "/usr/local/lib/libsqlite3.a") set (SQLITE3_LIB "/usr/local/lib/libsqlite3.a") diff --git a/tests/unittests/CMakeLists.txt b/tests/unittests/CMakeLists.txt index 37a7ed388..c1ead078f 100644 --- a/tests/unittests/CMakeLists.txt +++ b/tests/unittests/CMakeLists.txt @@ -48,7 +48,9 @@ set(SRCS ZlibUtilsTests.cpp ) -set_source_files_properties(${SRCS} PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations) +if (NOT WIN32) + set_source_files_properties(${SRCS} PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations) +endif() if (APPLE) if (BUILD_IOS) @@ -90,22 +92,35 @@ else() endif() if(PAL_IMPLEMENTATION STREQUAL "WIN32") - # Link against prebuilt libraries on Windows - message("--- WIN32: Linking against prebuilt libraries") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gtest") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gmock") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/zlib") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/sqlite") - # link_directories(${CMAKE_BINARY_DIR}/gtest/ ${CMAKE_BINARY_DIR}/gmock/ ${CMAKE_BINARY_DIR}/zlib/ ${CMAKE_BINARY_DIR}/sqlite/) - include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../../zlib ) - target_link_libraries(UnitTests - mat - wininet.lib - ${CMAKE_BINARY_DIR}/gtest/gtest.lib - ${CMAKE_BINARY_DIR}/gmock/gmock.lib - ${CMAKE_BINARY_DIR}/zlib/zlib.lib - ${CMAKE_BINARY_DIR}/sqlite/sqlite.lib - ) + if (CMAKE_TOOLCHAIN_FILE) + target_link_libraries(UnitTests + mat + wininet.lib + crypt32.lib + ${GTEST_BOTH_LIBRARIES} + ${GOOGLE_MOCK} ${GOOGLE_MOCKD} + ${GOOGLE_MOCK_MAIN} ${GOOGLE_MOCK_MAIND} + ${SQLite3_LIBRARIES} + ${ZLIB_LIBRARIES} + ) + else() + # Link against prebuilt libraries on Windows + message("--- WIN32: Linking against prebuilt libraries") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gtest") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gmock") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/zlib") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/sqlite") + # link_directories(${CMAKE_BINARY_DIR}/gtest/ ${CMAKE_BINARY_DIR}/gmock/ ${CMAKE_BINARY_DIR}/zlib/ ${CMAKE_BINARY_DIR}/sqlite/) + include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../../zlib ) + target_link_libraries(UnitTests + mat + wininet.lib + ${CMAKE_BINARY_DIR}/gtest/gtest.lib + ${CMAKE_BINARY_DIR}/gmock/gmock.lib + ${CMAKE_BINARY_DIR}/zlib/zlib.lib + ${CMAKE_BINARY_DIR}/sqlite/sqlite.lib + ) + endif() else() # Prefer linking to more recent local sqlite3 diff --git a/tests/unittests/EventPropertiesTests.cpp b/tests/unittests/EventPropertiesTests.cpp index d2867340b..09b70d940 100644 --- a/tests/unittests/EventPropertiesTests.cpp +++ b/tests/unittests/EventPropertiesTests.cpp @@ -19,7 +19,7 @@ TEST(EventPropertiesTests, Construction) EXPECT_THAT(ep.GetProperties(), SizeIs(1)); EXPECT_THAT(ep.GetPiiProperties(), IsEmpty()); EXPECT_TRUE(std::get<0>(ep.TryGetLevel())); - EXPECT_THAT(std::get<1>(ep.TryGetLevel()), DIAG_LEVEL_OPTIONAL); + EXPECT_THAT(std::get<1>(ep.TryGetLevel()), (uint8_t)DIAG_LEVEL_OPTIONAL); } TEST(EventPropertiesTests, Name) @@ -45,21 +45,21 @@ TEST(EventPropertiesTests, DiagnosticLevel) EventProperties epOptional("Optional", DIAG_LEVEL_OPTIONAL); EXPECT_THAT(epOptional.GetName(), Eq("Optional")); EXPECT_TRUE(std::get<0>(epOptional.TryGetLevel())); - EXPECT_THAT(std::get<1>(epOptional.TryGetLevel()), DIAG_LEVEL_OPTIONAL); + EXPECT_THAT(std::get<1>(epOptional.TryGetLevel()), (uint8_t)DIAG_LEVEL_OPTIONAL); epOptional.SetLevel(DIAG_LEVEL_REQUIRED); EXPECT_TRUE(std::get<0>(epOptional.TryGetLevel())); - EXPECT_THAT(std::get<1>(epOptional.TryGetLevel()), DIAG_LEVEL_REQUIRED); + EXPECT_THAT(std::get<1>(epOptional.TryGetLevel()), (uint8_t)DIAG_LEVEL_REQUIRED); EventProperties epRequired("Required", DIAG_LEVEL_REQUIRED); EXPECT_THAT(epRequired.GetName(), Eq("Required")); EXPECT_TRUE(std::get<0>(epRequired.TryGetLevel())); - EXPECT_THAT(std::get<1>(epRequired.TryGetLevel()), DIAG_LEVEL_REQUIRED); + EXPECT_THAT(std::get<1>(epRequired.TryGetLevel()), (uint8_t)DIAG_LEVEL_REQUIRED); EventProperties epCustom("Custom", 55); EXPECT_THAT(epCustom.GetName(), Eq("Custom")); EXPECT_TRUE(std::get<0>(epCustom.TryGetLevel())); - EXPECT_THAT(std::get<1>(epCustom.TryGetLevel()), 55); + EXPECT_THAT(std::get<1>(epCustom.TryGetLevel()), (uint8_t)55); } TEST(EventPropertiesTests, Timestamp) @@ -203,7 +203,7 @@ TEST(EventPropertiesTests, TryGetLevel_NotTheRightType_ReturnsFalseAndZero) properties.SetProperty(COMMONFIELDS_EVENT_LEVEL, "Not a number"); auto result = properties.TryGetLevel(); EXPECT_FALSE(std::get<0>(result)); - EXPECT_EQ(std::get<1>(result), 0); + EXPECT_EQ(std::get<1>(result), (uint8_t)0); } TEST(EventPropertiesTests, TryGetLevel_ValueLargerThanUint8_ReturnsFalseAndZero) @@ -212,7 +212,7 @@ TEST(EventPropertiesTests, TryGetLevel_ValueLargerThanUint8_ReturnsFalseAndZero) properties.SetProperty(COMMONFIELDS_EVENT_LEVEL, 257); auto result = properties.TryGetLevel(); EXPECT_FALSE(std::get<0>(result)); - EXPECT_EQ(std::get<1>(result), 0); + EXPECT_EQ(std::get<1>(result), (uint8_t)0); } TEST(EventPropertiesTests, TryGetLevel_ValueLessThanZero_ReturnsFalseAndZero) @@ -221,7 +221,7 @@ TEST(EventPropertiesTests, TryGetLevel_ValueLessThanZero_ReturnsFalseAndZero) properties.SetProperty(COMMONFIELDS_EVENT_LEVEL, -1); auto result = properties.TryGetLevel(); EXPECT_FALSE(std::get<0>(result)); - EXPECT_EQ(std::get<1>(result), 0); + EXPECT_EQ(std::get<1>(result), (uint8_t)0); } TEST(EventPropertiesTests, TryGetLevel_ValidValue_ReturnsTrueAndCorrectValue) @@ -230,7 +230,7 @@ TEST(EventPropertiesTests, TryGetLevel_ValidValue_ReturnsTrueAndCorrectValue) properties.SetProperty(COMMONFIELDS_EVENT_LEVEL, 42); auto result = properties.TryGetLevel(); EXPECT_TRUE(std::get<0>(result)); - EXPECT_EQ(std::get<1>(result), 42); + EXPECT_EQ(std::get<1>(result), (uint8_t)42); } TEST(EventPropertiesTests, TryGetLevel_ValueSetBySetLevel_ReturnsTrueAndCorrectValue) @@ -239,5 +239,5 @@ TEST(EventPropertiesTests, TryGetLevel_ValueSetBySetLevel_ReturnsTrueAndCorrectV properties.SetLevel(42); auto result = properties.TryGetLevel(); EXPECT_TRUE(std::get<0>(result)); - EXPECT_EQ(std::get<1>(result), 42); + EXPECT_EQ(std::get<1>(result), (uint8_t)42); } diff --git a/tests/unittests/OfflineStorageTests_Room.cpp b/tests/unittests/OfflineStorageTests_Room.cpp index 5e26154fe..342dc9799 100644 --- a/tests/unittests/OfflineStorageTests_Room.cpp +++ b/tests/unittests/OfflineStorageTests_Room.cpp @@ -202,7 +202,7 @@ TEST_P(OfflineStorageTestsRoom, TestBadFile) } badStorage->Initialize(observerMock); std::atomic found(0); - EXPECT_FALSE(badStorage->GetAndReserveRecords( [&found](StorageRecord && record)->bool { + EXPECT_FALSE(badStorage->GetAndReserveRecords( [&found](StorageRecord && /*record*/)->bool { found += 1; return true; }, 5)); @@ -500,7 +500,7 @@ TEST_P(OfflineStorageTestsRoom, ReleaseActuallyReleases) { ); offlineStorage->StoreRecord(r); offlineStorage->GetAndReserveRecords( - [](StorageRecord && record)->bool + [](StorageRecord && /*record*/)->bool { return false; }, @@ -518,7 +518,7 @@ TEST_P(OfflineStorageTestsRoom, ReleaseActuallyReleases) { EXPECT_EQ(unsigned { 1 }, offlineStorage->LastReadRecordCount()); EXPECT_EQ(size_t { 1 }, records.size()); offlineStorage->GetAndReserveRecords( - [] (StorageRecord && record)->bool + [] (StorageRecord && /*record*/)->bool { ADD_FAILURE(); return false; @@ -592,7 +592,8 @@ TEST_P(OfflineStorageTestsRoom, StoreManyRecords) StorageBlob masterBlob; masterBlob.reserve(blobSize); while (masterBlob.size() < blobSize) { - masterBlob.push_back(randomByte(gen)); + auto random_byte = randomByte(gen); + masterBlob.push_back((uint8_t)random_byte); } size_t blocks = 0; StorageRecordVector records; From 43c5b3bd71b3d062bf41a8adcc416feca6e0e0c6 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Wed, 13 Apr 2022 17:33:09 +0530 Subject: [PATCH 08/12] reorg --- tests/functests/CMakeLists.txt | 38 +++++++++++++++++----------------- tests/unittests/CMakeLists.txt | 24 ++++++++++----------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/tests/functests/CMakeLists.txt b/tests/functests/CMakeLists.txt index 8c0b13b44..412841f29 100644 --- a/tests/functests/CMakeLists.txt +++ b/tests/functests/CMakeLists.txt @@ -46,7 +46,24 @@ else() endif() if(PAL_IMPLEMENTATION STREQUAL "WIN32") - if (CMAKE_TOOLCHAIN_FILE) + if (NOT CMAKE_TOOLCHAIN_FILE) + # Link against prebuilt libraries on Windows + message("--- WIN32: Linking against prebuilt libraries") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gtest") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gmock") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/zlib") + message("--- WIN32: ... ${CMAKE_BINARY_DIR}/sqlite") + # link_directories(${CMAKE_BINARY_DIR}/gtest/ ${CMAKE_BINARY_DIR}/gmock/ ${CMAKE_BINARY_DIR}/zlib/ ${CMAKE_BINARY_DIR}/sqlite/) + include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../../zlib ) + target_link_libraries(FuncTests + mat + wininet.lib + ${CMAKE_BINARY_DIR}/gtest/gtest.lib + ${CMAKE_BINARY_DIR}/gmock/gmock.lib + ${CMAKE_BINARY_DIR}/zlib/zlib.lib + ${CMAKE_BINARY_DIR}/sqlite/sqlite.lib + ) + else() target_link_libraries(FuncTests mat wininet.lib @@ -56,24 +73,7 @@ if(PAL_IMPLEMENTATION STREQUAL "WIN32") ${GOOGLE_MOCK_MAIN} ${GOOGLE_MOCK_MAIND} ${SQLite3_LIBRARIES} ${ZLIB_LIBRARIES} - ) - else() - # Link against prebuilt libraries on Windows - message("--- WIN32: Linking against prebuilt libraries") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gtest") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gmock") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/zlib") - message("--- WIN32: ... ${CMAKE_BINARY_DIR}/sqlite") - # link_directories(${CMAKE_BINARY_DIR}/gtest/ ${CMAKE_BINARY_DIR}/gmock/ ${CMAKE_BINARY_DIR}/zlib/ ${CMAKE_BINARY_DIR}/sqlite/) - include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../../zlib ) - target_link_libraries(FuncTests - mat - wininet.lib - ${CMAKE_BINARY_DIR}/gtest/gtest.lib - ${CMAKE_BINARY_DIR}/gmock/gmock.lib - ${CMAKE_BINARY_DIR}/zlib/zlib.lib - ${CMAKE_BINARY_DIR}/sqlite/sqlite.lib - ) + ) endif() else() # Prefer linking to more recent local sqlite3 diff --git a/tests/unittests/CMakeLists.txt b/tests/unittests/CMakeLists.txt index c1ead078f..258db9206 100644 --- a/tests/unittests/CMakeLists.txt +++ b/tests/unittests/CMakeLists.txt @@ -92,18 +92,7 @@ else() endif() if(PAL_IMPLEMENTATION STREQUAL "WIN32") - if (CMAKE_TOOLCHAIN_FILE) - target_link_libraries(UnitTests - mat - wininet.lib - crypt32.lib - ${GTEST_BOTH_LIBRARIES} - ${GOOGLE_MOCK} ${GOOGLE_MOCKD} - ${GOOGLE_MOCK_MAIN} ${GOOGLE_MOCK_MAIND} - ${SQLite3_LIBRARIES} - ${ZLIB_LIBRARIES} - ) - else() + if (NOT CMAKE_TOOLCHAIN_FILE) # Link against prebuilt libraries on Windows message("--- WIN32: Linking against prebuilt libraries") message("--- WIN32: ... ${CMAKE_BINARY_DIR}/gtest") @@ -120,6 +109,17 @@ if(PAL_IMPLEMENTATION STREQUAL "WIN32") ${CMAKE_BINARY_DIR}/zlib/zlib.lib ${CMAKE_BINARY_DIR}/sqlite/sqlite.lib ) + else() + target_link_libraries(UnitTests + mat + wininet.lib + crypt32.lib + ${GTEST_BOTH_LIBRARIES} + ${GOOGLE_MOCK} ${GOOGLE_MOCKD} + ${GOOGLE_MOCK_MAIN} ${GOOGLE_MOCK_MAIND} + ${SQLite3_LIBRARIES} + ${ZLIB_LIBRARIES} + ) endif() else() From 4078cd990218eb103c26ceed9acee6f573f3d908 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Wed, 13 Apr 2022 17:37:35 +0530 Subject: [PATCH 09/12] reorg --- tests/functests/CMakeLists.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/functests/CMakeLists.txt b/tests/functests/CMakeLists.txt index 412841f29..869934645 100644 --- a/tests/functests/CMakeLists.txt +++ b/tests/functests/CMakeLists.txt @@ -56,17 +56,17 @@ if(PAL_IMPLEMENTATION STREQUAL "WIN32") # link_directories(${CMAKE_BINARY_DIR}/gtest/ ${CMAKE_BINARY_DIR}/gmock/ ${CMAKE_BINARY_DIR}/zlib/ ${CMAKE_BINARY_DIR}/sqlite/) include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../../zlib ) target_link_libraries(FuncTests - mat - wininet.lib - ${CMAKE_BINARY_DIR}/gtest/gtest.lib - ${CMAKE_BINARY_DIR}/gmock/gmock.lib - ${CMAKE_BINARY_DIR}/zlib/zlib.lib - ${CMAKE_BINARY_DIR}/sqlite/sqlite.lib + mat + wininet.lib + ${CMAKE_BINARY_DIR}/gtest/gtest.lib + ${CMAKE_BINARY_DIR}/gmock/gmock.lib + ${CMAKE_BINARY_DIR}/zlib/zlib.lib + ${CMAKE_BINARY_DIR}/sqlite/sqlite.lib ) else() target_link_libraries(FuncTests - mat - wininet.lib + mat + wininet.lib crypt32.lib ${GTEST_BOTH_LIBRARIES} ${GOOGLE_MOCK} ${GOOGLE_MOCKD} From de97be5ebed7f1def7884406e1626533ca2ea958 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 14 Apr 2022 16:52:02 +0530 Subject: [PATCH 10/12] document build steps --- docs/building-with-vcpkg-cmake-windows.md | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/building-with-vcpkg-cmake-windows.md diff --git a/docs/building-with-vcpkg-cmake-windows.md b/docs/building-with-vcpkg-cmake-windows.md new file mode 100644 index 000000000..acd5977d5 --- /dev/null +++ b/docs/building-with-vcpkg-cmake-windows.md @@ -0,0 +1,31 @@ +# Building 1DS C++ SDK with cmake on Windows + +### Pre-requisite: + + - Windows SDK for C++ + - CMake + +### Steps: + +1. Clone the repo + +PS C:\> git clone https://github.com/microsoft/cpp_client_telemetry.git + + +2. Fetch the submodules (specifically the vcpkg port): + +PS C:\cpp_client_telemetry> git submodule update --init + +3. Create CMake configuration + +PS C:\cpp_client_telemetry> mkdir build +PS C:\cpp_client_telemetry> cd build +PS C:\cpp_client_telemetry\build> cmake -DCMAKE_TOOLCHAIN_FILE=..\tools\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. + +4. Run CMake build + +PS C:\cpp_client_telemetry\build> cmake --build . + +This should build the 1DS C++ library, along with the functional and unit tests in `build` folder + + From 257ffd157602b181736dbf895a7e1bb02f2f9252 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 14 Apr 2022 17:09:17 +0530 Subject: [PATCH 11/12] update prerequisite --- docs/building-with-vcpkg-cmake-windows.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/building-with-vcpkg-cmake-windows.md b/docs/building-with-vcpkg-cmake-windows.md index acd5977d5..af156a34e 100644 --- a/docs/building-with-vcpkg-cmake-windows.md +++ b/docs/building-with-vcpkg-cmake-windows.md @@ -2,8 +2,9 @@ ### Pre-requisite: - - Windows SDK for C++ - - CMake + - VS 2017/2019 + - Chocolatey Package Manager + - CMake 3.1.0 or higher ### Steps: From eb5679c790c515ea29c3abbbc3409b602361a09d Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Tue, 12 Jul 2022 12:26:00 -0700 Subject: [PATCH 12/12] remove forced installation of dependencies for windows --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 06b76d7d8..9f87e29f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,9 +31,10 @@ if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE) include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") endif() +option(INSTALL_WIN32_DEPEDENCIES "Whether to install Windows dependencies using vcpkg" OFF) if (DEFINED CMAKE_TOOLCHAIN_FILE AND WIN32) find_package(GTest) - if(NOT (GTEST_FOUND OR GTest_FOUND)) + if (INSTALL_WIN32_DEPEDENCIES AND NOT (GTEST_FOUND OR GTest_FOUND)) install_windows_deps() endif() find_package(GTest REQUIRED)