From 317ce8aae837c999ace17fa3ebdef6d6215150ec Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Sat, 6 Sep 2025 13:34:59 +0200 Subject: [PATCH] CMake minimal build and dependencies (#5013) --- ActiveRecord/testsuite/CMakeLists.txt | 6 +- CMakeLists.txt | 283 ++++++++++++----------- CppParser/testsuite/CMakeLists.txt | 6 +- Crypto/testsuite/CMakeLists.txt | 8 +- DNSSD/CMakeLists.txt | 4 +- Data/CMakeLists.txt | 1 - Data/DataTest/CMakeLists.txt | 2 +- Data/MySQL/testsuite/CMakeLists.txt | 8 +- Data/ODBC/testsuite/CMakeLists.txt | 8 +- Data/PostgreSQL/testsuite/CMakeLists.txt | 6 +- Data/SQLite/testsuite/CMakeLists.txt | 10 +- Data/testsuite/CMakeLists.txt | 6 +- Data/testsuite/testsuite.cmake | 6 +- Foundation/testsuite/CMakeLists.txt | 6 +- JSON/testsuite/CMakeLists.txt | 6 +- JWT/testsuite/CMakeLists.txt | 6 +- MongoDB/testsuite/CMakeLists.txt | 6 +- Net/testsuite/CMakeLists.txt | 8 +- NetSSL_OpenSSL/testsuite/CMakeLists.txt | 6 +- PDF/testsuite/CMakeLists.txt | 6 +- Prometheus/testsuite/CMakeLists.txt | 6 +- Redis/testsuite/CMakeLists.txt | 6 +- Util/testsuite/CMakeLists.txt | 6 +- Zip/testsuite/CMakeLists.txt | 6 +- cmake/CXX1x.cmake | 60 ++--- cmake/test_compiler.cpp | 8 +- 26 files changed, 255 insertions(+), 235 deletions(-) diff --git a/ActiveRecord/testsuite/CMakeLists.txt b/ActiveRecord/testsuite/CMakeLists.txt index 73b774060..6ab13c70e 100644 --- a/ActiveRecord/testsuite/CMakeLists.txt +++ b/ActiveRecord/testsuite/CMakeLists.txt @@ -15,15 +15,15 @@ if(ANDROID) add_test( NAME ActiveRecord WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/ActiveRecord-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/ActiveRecord-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME ActiveRecord WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND ActiveRecord-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND ActiveRecord-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(ActiveRecord PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(ActiveRecord PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(ActiveRecord-testrunner PUBLIC Poco::DataSQLite Poco::Data Poco::ActiveRecord CppUnit) diff --git a/CMakeLists.txt b/CMakeLists.txt index 78c7a9b7a..e2d3c26cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,8 @@ include(PocoMacros) option(BUILD_SHARED_LIBS "Build shared libraries" ON) +option(POCO_MINIMAL_BUILD "Build only bare minimum Poco libraries identifoed with ENABLE options." OFF) + set(POCO_SANITIZEFLAGS CACHE STRING "Compiler-dependent sanitizer flags (like -fsanitize=address or /fsanitize=address") if(MSVC) @@ -88,13 +90,13 @@ if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:__cplusplus") endif() -option(ENABLE_NETSSL_WIN "Enable NetSSL Windows" OFF) - # # Path to OpenSSL installation root can be provided by setting a variable # OPENSSL_ROOT_DIR. # +# CMake pre-4.1 does not have fixes to find ARM Windows OpenSSL built-in yet. +# Corrected find script is included with Poco for older version of CMake. if (WIN32 AND CMAKE_VERSION VERSION_LESS "4.1.0") if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ARM64") message(STATUS "OpenSSL: Importing custom FindOpenSSL with updates for ARM64 Windows.") @@ -102,122 +104,102 @@ if (WIN32 AND CMAKE_VERSION VERSION_LESS "4.1.0") list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/openssl) endif() endif() -if(ENABLE_CRYPTO OR ENABLE_NETSSL OR ENABLE_JWT) - find_package(OpenSSL REQUIRED) -else() - find_package(OpenSSL) -endif() -if(OPENSSL_FOUND) - option(ENABLE_NETSSL "Enable NetSSL" ON) - option(ENABLE_CRYPTO "Enable Crypto" ON) - option(ENABLE_JWT "Enable JWT" ON) +if (NOT POCO_MINIMAL_BUILD) + find_package(OpenSSL) + find_package(MySQL) + find_package(PostgreSQL) + find_package(ODBC) + + find_package(APR) + find_package(APRUTIL) + find_package(Apache2) + + if(OPENSSL_FOUND) + option(ENABLE_NETSSL "Enable NetSSL" ON) + option(ENABLE_CRYPTO "Enable Crypto" ON) + option(ENABLE_JWT "Enable JWT" ON) + else() + option(ENABLE_NETSSL "Enable NetSSL" OFF) + option(ENABLE_CRYPTO "Enable Crypto" OFF) + option(ENABLE_JWT "Enable JWT" OFF) + endif() + + if(APR_FOUND AND APRUTIL_FOUND AND APACHE2_FOUND AND + EXISTS ${PROJECT_SOURCE_DIR}/ApacheConnector AND ENABLE_APACHECONNECTOR) + option(ENABLE_APACHECONNECTOR "Enable ApacheConnector" ON) + else() + option(ENABLE_APACHECONNECTOR "Enable ApacheConnector" OFF) + endif() + + if(MYSQL_FOUND) + option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" ON) + else() + option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" OFF) + endif() + + if(PostgreSQL_FOUND) + option(ENABLE_DATA_POSTGRESQL "Enable Data PosgreSQL" ON) + else() + option(ENABLE_DATA_POSTGRESQL "Enable Data PosgreSQL" OFF) + endif() + + if(ODBC_FOUND) + option(ENABLE_DATA_ODBC "Enable Data ODBC" ON) + option(ENABLE_DATA_SQL_SERVER_BIG_STRINGS "Enable MS SQL Server big strings" ON) + else() + option(ENABLE_DATA_ODBC "Enable Data ODBC" OFF) + option(ENABLE_DATA_SQL_SERVER_BIG_STRINGS "Enable MS SQL Server big strings" OFF) + endif() + + set(_enable_default ON) else() option(ENABLE_NETSSL "Enable NetSSL" OFF) option(ENABLE_CRYPTO "Enable Crypto" OFF) option(ENABLE_JWT "Enable JWT" OFF) -endif() - -if(ENABLE_APACHECONNECTOR) - find_package(APR REQUIRED) - find_package(APRUTIL REQUIRED) - find_package(Apache2 REQUIRED) -else() - find_package(APR) - find_package(APRUTIL) - find_package(Apache2) -endif() - -if(APR_FOUND AND APRUTIL_FOUND AND APACHE2_FOUND AND - EXISTS ${PROJECT_SOURCE_DIR}/ApacheConnector AND ENABLE_APACHECONNECTOR) - option(ENABLE_APACHECONNECTOR "Enable ApacheConnector" ON) -else() option(ENABLE_APACHECONNECTOR "Enable ApacheConnector" OFF) -endif() - -if(ENABLE_DATA_MYSQL) - find_package(MySQL REQUIRED) -else() - find_package(MySQL) -endif() - -if(MYSQL_FOUND) - option(ENABLE_DATA "Enable Data" ON) - option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" ON) -else() option(ENABLE_DATA "Enable Data" OFF) option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" OFF) -endif() - -if(ENABLE_DATA_POSTGRESQL) - find_package(PostgreSQL REQUIRED) -else() - find_package(PostgreSQL) -endif() - -if(PostgreSQL_FOUND) - option(ENABLE_DATA "Enable Data" ON) - option(ENABLE_DATA_POSTGRESQL "Enable Data PosgreSQL" ON) -else() - option(ENABLE_DATA "Enable Data" OFF) option(ENABLE_DATA_POSTGRESQL "Enable Data PosgreSQL" OFF) -endif() - -if(ENABLE_DATA_ODBC) - find_package(ODBC REQUIRED) -else() - find_package(ODBC) -endif() - -if(ODBC_FOUND) - option(ENABLE_DATA "Enable Data" ON) - option(ENABLE_DATA_ODBC "Enable Data ODBC" ON) - option(ENABLE_DATA_SQL_SERVER_BIG_STRINGS "Enable MS SQL Server big strings" ON) -else() - option(ENABLE_DATA "Enable Data" OFF) option(ENABLE_DATA_ODBC "Enable Data ODBC" OFF) option(ENABLE_DATA_SQL_SERVER_BIG_STRINGS "Enable MS SQL Server big strings" OFF) + + set(_enable_default OFF) endif() # Allow enabling and disabling components option(ENABLE_FOUNDATION "Enable Foundation" ON) -option(ENABLE_ENCODINGS "Enable Encodings" ON) + +option(ENABLE_ENCODINGS "Enable Encodings" ${_enable_default}) +option(ENABLE_XML "Enable XML" ${_enable_default}) +option(ENABLE_JSON "Enable JSON" ${_enable_default}) +option(ENABLE_MONGODB "Enable MongoDB" ${_enable_default}) +option(ENABLE_DATA_SQLITE "Enable Data SQlite" ${_enable_default}) +option(ENABLE_REDIS "Enable Redis" ${_enable_default}) +option(ENABLE_PROMETHEUS "Enable Prometheus" ${_enable_default}) +option(ENABLE_UTIL "Enable Util" ${_enable_default}) +option(ENABLE_NET "Enable Net" ${_enable_default}) +option(ENABLE_ZIP "Enable Zip" ${_enable_default}) +option(ENABLE_PAGECOMPILER "Enable PageCompiler" ${_enable_default}) +option(ENABLE_PAGECOMPILER_FILE2PAGE "Enable File2Page" ${_enable_default}) +option(ENABLE_ACTIVERECORD "Enable ActiveRecord" ${_enable_default}) +option(ENABLE_ACTIVERECORD_COMPILER "Enable ActiveRecord Compiler" ${_enable_default}) + +option(ENABLE_NETSSL_WIN "Enable NetSSL Windows" OFF) + option(ENABLE_ENCODINGS_COMPILER "Enable Encodings Compiler" OFF) -option(ENABLE_XML "Enable XML" ON) -option(ENABLE_JSON "Enable JSON" ON) -option(ENABLE_MONGODB "Enable MongoDB" ON) -option(ENABLE_DATA_SQLITE "Enable Data SQlite" ON) -option(ENABLE_REDIS "Enable Redis" ON) option(ENABLE_DNSSD "Enable DNSSD" OFF) option(ENABLE_DNSSD_DEFAULT "Enable DNSSD Default" OFF) - option(ENABLE_DNSSD_AVAHI "Enable DNSSD Avahi" OFF) option(ENABLE_DNSSD_BONJOUR "Enable DNSSD Bonjour" OFF) - -option(ENABLE_PROMETHEUS "Enable Prometheus" ON) -option(ENABLE_PDF "Enable PDF" OFF) -option(ENABLE_UTIL "Enable Util" ON) -option(ENABLE_NET "Enable Net" ON) - option(ENABLE_SEVENZIP "Enable SevenZip" OFF) -option(ENABLE_ZIP "Enable Zip" ON) option(ENABLE_CPPPARSER "Enable C++ parser" OFF) option(ENABLE_POCODOC "Enable Poco Documentation Generator" OFF) -option(ENABLE_PAGECOMPILER "Enable PageCompiler" ON) -option(ENABLE_PAGECOMPILER_FILE2PAGE "Enable File2Page" ON) - -option(ENABLE_ACTIVERECORD "Enable ActiveRecord" ON) -option(ENABLE_ACTIVERECORD_COMPILER "Enable ActiveRecord Compiler" ON) - +option(ENABLE_PDF "Enable PDF" OFF) option(ENABLE_TRACE "Enable stack tracing" OFF) -if(ENABLE_ACTIVERECORD AND NOT ENABLE_DATA) - set(ENABLE_DATA ON CACHE BOOL "Enable Data" FORCE) -endif() - -if(ENABLE_ACTIVERECORD AND NOT ENABLE_XML) - set(ENABLE_XML ON CACHE BOOL "Enable XML" FORCE) -endif() +option(ENABLE_CPPUNIT + "Set to OFF|ON (default is OFF) to enable CppUnit library" OFF) option(ENABLE_CPPUNIT "Set to OFF|ON (default is OFF) to enable CppUnit library" OFF) @@ -228,6 +210,8 @@ option(ENABLE_TESTS option(ENABLE_TEST_DEPRECATED "Set to OFF|ON (default is OFF) to enable build of tests for deprecated functionality" OFF) +option(POCO_DATA_NO_SQL_PARSER "Disable SQL parser" OFF) + option(ENABLE_COMPILER_WARNINGS "Set to OFF|ON (default is OFF) to enable additional compiler warnings. Intended primarily for maintainers." OFF) @@ -251,9 +235,6 @@ if(ENABLE_TESTS) include(CTest) enable_testing() message(STATUS "Building with unit tests") - - set(ENABLE_CPPUNIT ON CACHE BOOL "Enable CppUnit" FORCE) - if(ENABLE_TEST_DEPRECATED) add_compile_definitions(POCO_TEST_DEPRECATED) endif() @@ -307,17 +288,21 @@ add_compile_definitions(POCO_CMAKE) # Collect the built libraries and include dirs, the will be used to create the PocoConfig.cmake file set(Poco_COMPONENTS "") -if(ENABLE_TESTS) - set(ENABLE_XML ON CACHE BOOL "Enable XML" FORCE) - set(ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE) + +if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/OSP) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/OSP/cmake) + include (PocoProOspSetup) endif() -if(ENABLE_ENCODINGS_COMPILER OR ENABLE_APACHECONNECTOR) +# - resolve dependencies + +if(ENABLE_ENCODINGS_COMPILER) set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE) set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE) endif() -if(ENABLE_PAGECOMPILER_FILE2PAGE) +if(ENABLE_APACHECONNECTOR) + set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE) set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE) endif() @@ -326,28 +311,29 @@ if(ENABLE_PAGECOMPILER) set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE) endif() -if(ENABLE_MONGODB OR ENABLE_REDIS OR ENABLE_PROMETHEUS) +if(ENABLE_PAGECOMPILER_FILE2PAGE) + set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE) +endif() + +if(ENABLE_ACTIVERECORD) + set(ENABLE_DATA ON CACHE BOOL "Enable Data" FORCE) +endif() + +if(ENABLE_DATA_MYSQL OR ENABLE_DATA_ODBC OR ENABLE_DATA_POSTGRESQL) + set(ENABLE_DATA ON CACHE BOOL "Enable Data" FORCE) +endif() + +if (ENABLE_DNSSD) set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE) endif() -if(ENABLE_DATA_SQLITE OR ENABLE_DATA_MYSQL OR ENABLE_DATA_ODBC OR ENABLE_DATA_POSTGRESQL) - set(ENABLE_DATA ON CACHE BOOL "Enable Data" FORCE) - if(ENABLE_TESTS) - set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE) - set(ENABLE_DATA_SQLITE ON CACHE BOOL "Enable Data SQlite" FORCE) - endif() +if(ENABLE_JWT) + set(ENABLE_CRYPTO ON CACHE BOOL "Enable Crypto" FORCE) + set(ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE) endif() -if(ENABLE_DATA AND ENABLE_TESTS) - set(ENABLE_DATA_SQLITE ON CACHE BOOL "Enable Data SQlite" FORCE) -endif() - -if(ENABLE_ACTIVERECORD AND ENABLE_TESTS) - set(ENABLE_DATA_SQLITE ON CACHE BOOL "Enable Data SQlite" FORCE) -endif() - -if(ENABLE_NETSSL_WIN) - set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE) +if(ENABLE_MONGODB OR ENABLE_REDIS OR ENABLE_PROMETHEUS) + set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE) endif() if(ENABLE_NETSSL) @@ -356,13 +342,7 @@ if(ENABLE_NETSSL) set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE) endif() -if(ENABLE_CRYPTO AND ENABLE_TESTS) - set(ENABLE_NETSSL ON CACHE BOOL "Enable NetSSL" FORCE) - set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE) - set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE) -endif() - -if(ENABLE_NET AND ENABLE_TESTS) +if(ENABLE_NETSSL_WIN) set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE) endif() @@ -379,16 +359,49 @@ if(ENABLE_POCODOC) set(ENABLE_DATA_SQLITE ON CACHE BOOL "Enable Data SQLite" FORCE) endif() -if(ENABLE_UTIL AND ENABLE_TESTS) - set(ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE) - set(ENABLE_XML ON CACHE BOOL "Enable XML" FORCE) +if(ENABLE_TESTS) + set(ENABLE_CPPUNIT ON CACHE BOOL "Enable CppUnit" FORCE) + + if (ENABLE_DATA OR ENABLE_ACTIVERECORD) + set(ENABLE_DATA_SQLITE ON CACHE BOOL "Enable Data SQlite" FORCE) + endif() + if(ENABLE_UTIL) + set(ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE) + set(ENABLE_XML ON CACHE BOOL "Enable XML" FORCE) + endif() + endif() -if(ENABLE_JWT) - set(ENABLE_CRYPTO ON CACHE BOOL "Enable Crypto" FORCE) - set(ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE) +if(ENABLE_DATA_SQLITE) + set(ENABLE_DATA ON CACHE BOOL "Enable Data" FORCE) endif() +# - find external dependencies + +if(ENABLE_APACHECONNECTOR) + find_package(APR REQUIRED) + find_package(APRUTIL REQUIRED) + find_package(Apache2 REQUIRED) +endif() + +if(ENABLE_CRYPTO OR ENABLE_NETSSL OR ENABLE_JWT) + find_package(OpenSSL REQUIRED) +endif() + +if(ENABLE_DATA_MYSQL) + find_package(MySQL REQUIRED) +endif() + +if(ENABLE_DATA_POSTGRESQL) + find_package(PostgreSQL REQUIRED) +endif() + +if(ENABLE_DATA_ODBC) + find_package(ODBC REQUIRED) +endif() + +# - add required subdirectories + if(ENABLE_FOUNDATION) add_subdirectory(Foundation) list(APPEND Poco_COMPONENTS "Foundation") @@ -399,7 +412,7 @@ if(ENABLE_CPPUNIT) list(APPEND Poco_COMPONENTS "CppUnit") endif() -if(ENABLE_ENCODINGS) +if(EXISTS ${PROJECT_SOURCE_DIR}/Encodings AND ENABLE_ENCODINGS) add_subdirectory(Encodings) list(APPEND Poco_COMPONENTS "Encodings") endif() @@ -473,8 +486,6 @@ if(OPENSSL_FOUND) endif(OPENSSL_FOUND) -option(POCO_DATA_NO_SQL_PARSER "Disable SQL parser" OFF) - if(EXISTS ${PROJECT_SOURCE_DIR}/Data AND ENABLE_DATA) if(POCO_DATA_NO_SQL_PARSER) add_compile_definitions(POCO_DATA_NO_SQL_PARSER=1) @@ -495,6 +506,10 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/Data/PostgreSQL AND ENABLE_DATA_POSTGRESQL) list(APPEND Poco_COMPONENTS "Data/PostgreSQL") endif() +if(EXISTS ${PROJECT_SOURCE_DIR}/Data/ODBC AND ENABLE_DATA_ODBC) + list(APPEND Poco_COMPONENTS "Data/ODBC") +endif() + if(EXISTS ${PROJECT_SOURCE_DIR}/ActiveRecord AND ENABLE_ACTIVERECORD) add_subdirectory(ActiveRecord) list(APPEND Poco_COMPONENTS "ActiveRecord") diff --git a/CppParser/testsuite/CMakeLists.txt b/CppParser/testsuite/CMakeLists.txt index 1b1f39281..0068dd4ad 100644 --- a/CppParser/testsuite/CMakeLists.txt +++ b/CppParser/testsuite/CMakeLists.txt @@ -15,14 +15,14 @@ if(ANDROID) add_test( NAME CppParser WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/CppParser-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/CppParser-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME CppParser WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND CppParser-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND CppParser-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(CppParser PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(CppParser PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(CppParser-testrunner PUBLIC Poco::CppParser CppUnit) diff --git a/Crypto/testsuite/CMakeLists.txt b/Crypto/testsuite/CMakeLists.txt index c17f8498a..d6f66c238 100644 --- a/Crypto/testsuite/CMakeLists.txt +++ b/Crypto/testsuite/CMakeLists.txt @@ -15,17 +15,17 @@ if(ANDROID) add_test( NAME Crypto WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Crypto-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Crypto-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME Crypto WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND Crypto-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND Crypto-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(Crypto PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(Crypto PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() -target_link_libraries(Crypto-testrunner PUBLIC Poco::NetSSL Poco::XML CppUnit) +target_link_libraries(Crypto-testrunner PUBLIC Poco::Crypto CppUnit) if(MSVC) target_link_libraries(Crypto-testrunner PRIVATE OpenSSL::applink) endif() diff --git a/DNSSD/CMakeLists.txt b/DNSSD/CMakeLists.txt index c3290824e..7839a7152 100644 --- a/DNSSD/CMakeLists.txt +++ b/DNSSD/CMakeLists.txt @@ -46,9 +46,9 @@ set_target_properties( "${LIBNAME}" VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} OUTPUT_NAME ${POCO_LIBNAME} DEFINE_SYMBOL DNSSD_EXPORTS - ) +) -target_link_libraries( "${LIBNAME}" Foundation Net) +target_link_libraries( "${LIBNAME}" Poco::Foundation Poco::Net) target_include_directories( "${LIBNAME}" PUBLIC $ diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index 95e5019b3..46eddb948 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -66,7 +66,6 @@ if(ENABLE_TESTS) endif() if(ENABLE_DATA_SQLITE) - # SQlite3 is built in any case message(STATUS "SQLite Support Enabled") add_subdirectory(SQLite) else(ENABLE_DATA_SQLITE) diff --git a/Data/DataTest/CMakeLists.txt b/Data/DataTest/CMakeLists.txt index 5801195ca..259498d39 100644 --- a/Data/DataTest/CMakeLists.txt +++ b/Data/DataTest/CMakeLists.txt @@ -24,7 +24,7 @@ set_target_properties(DataTest target_link_libraries(DataTest PUBLIC Poco::Data CppUnit) target_include_directories(DataTest PUBLIC - $ + $ $ $ ) diff --git a/Data/MySQL/testsuite/CMakeLists.txt b/Data/MySQL/testsuite/CMakeLists.txt index c63586143..52e0cc2dd 100644 --- a/Data/MySQL/testsuite/CMakeLists.txt +++ b/Data/MySQL/testsuite/CMakeLists.txt @@ -15,15 +15,15 @@ if(ANDROID) add_test( NAME DataMySQL WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/DataMySQL-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/DataMySQL-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME DataMySQL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND DataMySQL-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND DataMySQL-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(DataMySQL PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(DataMySQL PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(DataMySQL-testrunner PUBLIC Poco::DataMySQL Poco::DataTest CppUnit) -target_include_directories(DataMySQL-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/DataTest/include/) +target_include_directories(DataMySQL-testrunner PUBLIC ${PROJECT_SOURCE_DIR}/Data/DataTest/include/) diff --git a/Data/ODBC/testsuite/CMakeLists.txt b/Data/ODBC/testsuite/CMakeLists.txt index aab06fef9..9ba7aea65 100644 --- a/Data/ODBC/testsuite/CMakeLists.txt +++ b/Data/ODBC/testsuite/CMakeLists.txt @@ -15,16 +15,16 @@ if(ANDROID) add_test( NAME DataODBC WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/DataODBC-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/DataODBC-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME DataODBC WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND DataODBC-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND DataODBC-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(DataODBC PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(DataODBC PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(DataODBC-testrunner PUBLIC Poco::DataTest Poco::DataODBC Poco::Data CppUnit) -target_include_directories(DataODBC-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/DataTest/include/) +target_include_directories(DataODBC-testrunner PUBLIC ${PROJECT_SOURCE_DIR}/Data/DataTest/include/) diff --git a/Data/PostgreSQL/testsuite/CMakeLists.txt b/Data/PostgreSQL/testsuite/CMakeLists.txt index 2cf63e505..c1fd9192d 100644 --- a/Data/PostgreSQL/testsuite/CMakeLists.txt +++ b/Data/PostgreSQL/testsuite/CMakeLists.txt @@ -14,8 +14,8 @@ add_executable(DataPostgreSQL-testrunner ${TEST_SRCS}) add_test( NAME DataPostgreSQL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND DataPostgreSQL-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND DataPostgreSQL-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) -set_tests_properties(DataPostgreSQL PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) +set_tests_properties(DataPostgreSQL PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) target_link_libraries(DataPostgreSQL-testrunner PUBLIC Poco::DataPostgreSQL Poco::DataTest CppUnit) -target_include_directories(DataPostgreSQL-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/DataTest/include/) +target_include_directories(DataPostgreSQL-testrunner PUBLIC ${PROJECT_SOURCE_DIR}/Data/DataTest/include/) diff --git a/Data/SQLite/testsuite/CMakeLists.txt b/Data/SQLite/testsuite/CMakeLists.txt index 219d0fa5c..987d79b4d 100644 --- a/Data/SQLite/testsuite/CMakeLists.txt +++ b/Data/SQLite/testsuite/CMakeLists.txt @@ -4,7 +4,7 @@ POCO_SOURCES_AUTO(TEST_SRCS ${SRCS_G}) # Headers file(GLOB_RECURSE HDRS_G "src/*.h") -file(GLOB HDRS_E ${CMAKE_SOURCE_DIR}/Data/DataTest/include/*.h) +file(GLOB HDRS_E ${PROJECT_SOURCE_DIR}/Data/DataTest/include/*.h) POCO_HEADERS_AUTO(TEST_SRCS ${HDRS_E}) POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF @@ -16,16 +16,16 @@ if(ANDROID) add_test( NAME DataSQLite WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/DataSQLite-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/DataSQLite-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME DataSQLite WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND DataSQLite-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND DataSQLite-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(DataSQLite PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(DataSQLite PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(DataSQLite-testrunner PUBLIC Poco::DataSQLite Poco::DataTest CppUnit) -target_include_directories(DataSQLite-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/DataTest/include/) +target_include_directories(DataSQLite-testrunner PUBLIC ${PROJECT_SOURCE_DIR}/Data/DataTest/include/) diff --git a/Data/testsuite/CMakeLists.txt b/Data/testsuite/CMakeLists.txt index 05ba576bb..a1977e642 100644 --- a/Data/testsuite/CMakeLists.txt +++ b/Data/testsuite/CMakeLists.txt @@ -16,15 +16,15 @@ if(ANDROID) add_test( NAME Data WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Data-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Data-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME Data WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND Data-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND Data-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(Data PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(Data PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(Data-testrunner PUBLIC Poco::DataTest Poco::Data CppUnit) diff --git a/Data/testsuite/testsuite.cmake b/Data/testsuite/testsuite.cmake index c800fb031..74f60beca 100644 --- a/Data/testsuite/testsuite.cmake +++ b/Data/testsuite/testsuite.cmake @@ -16,14 +16,14 @@ if(ANDROID) add_test( NAME Data WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Data-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Data-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME Data WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND Data-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND Data-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(Data PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(Data PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(Data-testrunner PUBLIC Poco::Data CppUnit) diff --git a/Foundation/testsuite/CMakeLists.txt b/Foundation/testsuite/CMakeLists.txt index 389f6137b..a78d817b2 100644 --- a/Foundation/testsuite/CMakeLists.txt +++ b/Foundation/testsuite/CMakeLists.txt @@ -24,17 +24,17 @@ if(ANDROID) add_test( NAME Foundation WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;${CMAKE_BINARY_DIR}/bin/TestApp;${CMAKE_BINARY_DIR}/bin/TestLibrary.so" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Foundation-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;${CMAKE_BINARY_DIR}/bin/TestApp;${CMAKE_BINARY_DIR}/bin/TestLibrary.so" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Foundation-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME Foundation WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND Foundation-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND Foundation-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) set_tests_properties(Foundation PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") # The SharedLibaryTest has to look for shared libraries in the working directory set_property(TEST Foundation APPEND PROPERTY ENVIRONMENT "PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:$ENV{PATH}") # The ProcessTest has to look for the TestApp in the working directory - set_property(TEST Foundation APPEND PROPERTY ENVIRONMENT "POCO_BASE=${CMAKE_SOURCE_DIR}") + set_property(TEST Foundation APPEND PROPERTY ENVIRONMENT "POCO_BASE=${PROJECT_SOURCE_DIR}") # The test is run in the runtime directory. So the test data is copied there too add_custom_command( TARGET Foundation-testrunner POST_BUILD diff --git a/JSON/testsuite/CMakeLists.txt b/JSON/testsuite/CMakeLists.txt index 2d2e54c2b..a9b7683ae 100644 --- a/JSON/testsuite/CMakeLists.txt +++ b/JSON/testsuite/CMakeLists.txt @@ -15,15 +15,15 @@ if(ANDROID) add_test( NAME JSON WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/JSON-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/JSON-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME JSON WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND JSON-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND JSON-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(JSON PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(JSON PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) # The test is run in the build directory. So the test data is copied there too add_custom_command( TARGET JSON-testrunner POST_BUILD diff --git a/JWT/testsuite/CMakeLists.txt b/JWT/testsuite/CMakeLists.txt index cdba4ba20..ae6e2229a 100644 --- a/JWT/testsuite/CMakeLists.txt +++ b/JWT/testsuite/CMakeLists.txt @@ -15,15 +15,15 @@ if(ANDROID) add_test( NAME JWT WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/JWT-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/JWT-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME JWT WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND JWT-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND JWT-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(JWT PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(JWT PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(JWT-testrunner PUBLIC Poco::JWT Poco::Crypto CppUnit) if(MSVC) diff --git a/MongoDB/testsuite/CMakeLists.txt b/MongoDB/testsuite/CMakeLists.txt index afa0f1659..86ee2073c 100644 --- a/MongoDB/testsuite/CMakeLists.txt +++ b/MongoDB/testsuite/CMakeLists.txt @@ -15,13 +15,13 @@ if(ANDROID) add_test( NAME MongoDB WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/MongoDB-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/MongoDB-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME MongoDB - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND MongoDB-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND MongoDB-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(MongoDB PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(MongoDB PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(MongoDB-testrunner PUBLIC Poco::MongoDB CppUnit) diff --git a/Net/testsuite/CMakeLists.txt b/Net/testsuite/CMakeLists.txt index b3f78ab81..8f7df8d03 100644 --- a/Net/testsuite/CMakeLists.txt +++ b/Net/testsuite/CMakeLists.txt @@ -15,14 +15,14 @@ if(ANDROID) add_test( NAME Net WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Net-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Net-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME Net WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND Net-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND Net-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(Net PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(Net PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() -target_link_libraries(Net-testrunner PUBLIC Poco::Net Poco::Util Poco::XML CppUnit) +target_link_libraries(Net-testrunner PUBLIC Poco::Net CppUnit) diff --git a/NetSSL_OpenSSL/testsuite/CMakeLists.txt b/NetSSL_OpenSSL/testsuite/CMakeLists.txt index bc6bf722b..6a150077b 100644 --- a/NetSSL_OpenSSL/testsuite/CMakeLists.txt +++ b/NetSSL_OpenSSL/testsuite/CMakeLists.txt @@ -16,15 +16,15 @@ if(ANDROID) add_test( NAME NetSSL WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/any.pem;${CMAKE_CURRENT_SOURCE_DIR}/rootcert.pem;${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/NetSSL-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/any.pem;${CMAKE_CURRENT_SOURCE_DIR}/rootcert.pem;${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/NetSSL-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME NetSSL WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND NetSSL-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND NetSSL-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(NetSSL PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(NetSSL PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) # The test is run in the build directory. So the test data is copied there too add_custom_command( TARGET NetSSL-testrunner POST_BUILD diff --git a/PDF/testsuite/CMakeLists.txt b/PDF/testsuite/CMakeLists.txt index 03935463c..70fb9d617 100644 --- a/PDF/testsuite/CMakeLists.txt +++ b/PDF/testsuite/CMakeLists.txt @@ -15,14 +15,14 @@ if(ANDROID) add_test( NAME PDF WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/PDF-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/PDF-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME PDF WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND PDF-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND PDF-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(PDF PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(PDF PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(PDF-testrunner PUBLIC Poco::PDF CppUnit) diff --git a/Prometheus/testsuite/CMakeLists.txt b/Prometheus/testsuite/CMakeLists.txt index f36482084..6ed2b74b2 100644 --- a/Prometheus/testsuite/CMakeLists.txt +++ b/Prometheus/testsuite/CMakeLists.txt @@ -15,13 +15,13 @@ if(ANDROID) add_test( NAME Prometheus WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Prometheus-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Prometheus-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME Prometheus - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND Prometheus-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND Prometheus-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(Prometheus PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(Prometheus PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(Prometheus-testrunner PUBLIC Poco::Prometheus CppUnit) diff --git a/Redis/testsuite/CMakeLists.txt b/Redis/testsuite/CMakeLists.txt index a74d39c7b..f3db3ddbf 100644 --- a/Redis/testsuite/CMakeLists.txt +++ b/Redis/testsuite/CMakeLists.txt @@ -15,15 +15,15 @@ if(ANDROID) add_test( NAME Redis WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Redis-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Redis-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME Redis WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND Redis-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND Redis-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(Redis PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(Redis PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(Redis-testrunner PUBLIC ${CMAKE_THREAD_LIBS_INIT} Poco::Redis CppUnit) diff --git a/Util/testsuite/CMakeLists.txt b/Util/testsuite/CMakeLists.txt index 4f1e0f3c4..309721801 100644 --- a/Util/testsuite/CMakeLists.txt +++ b/Util/testsuite/CMakeLists.txt @@ -22,14 +22,14 @@ if(ANDROID) add_test( NAME Util WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Util-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Util-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME Util WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND Util-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + COMMAND Util-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(Util PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(Util PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) endif() target_link_libraries(Util-testrunner PUBLIC Poco::Util Poco::JSON Poco::XML CppUnit) diff --git a/Zip/testsuite/CMakeLists.txt b/Zip/testsuite/CMakeLists.txt index a0e048ded..a3e91f250 100644 --- a/Zip/testsuite/CMakeLists.txt +++ b/Zip/testsuite/CMakeLists.txt @@ -15,14 +15,14 @@ if(ANDROID) add_test( NAME Zip WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Zip-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Zip-testrunner -DTEST_PARAMETER=-all -P ${PROJECT_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake ) else() add_test( NAME Zip - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND Zip-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND Zip-testrunner -ignore ${PROJECT_SOURCE_DIR}/cppignore.lnx -all ) - set_tests_properties(Zip PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) + set_tests_properties(Zip PROPERTIES ENVIRONMENT POCO_BASE=${PROJECT_SOURCE_DIR}) # The test is run in the build directory. So the test data is copied there too add_custom_command( TARGET Zip-testrunner POST_BUILD diff --git a/cmake/CXX1x.cmake b/cmake/CXX1x.cmake index 64a2b5ab1..c7583084a 100644 --- a/cmake/CXX1x.cmake +++ b/cmake/CXX1x.cmake @@ -19,32 +19,34 @@ # THE SOFTWARE. # Determines whether the compiler supports C++17 -macro(check_for_cxx17_compiler _VAR) - message(STATUS "Checking for C++17 compiler") - set(${_VAR}) - try_compile( - _COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/test_compiler.cpp - CMAKE_FLAGS -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON - ) - if(NOT _COMPILER_TEST_RESULT AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - try_compile( - _COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/test_compiler.cpp - CMAKE_FLAGS -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON - ) - if(_COMPILER_TEST_RESULT) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - else() - message(STATUS "To enable C++17 install libc++ standard library from https://libcxx.llvm.org/") - endif() - endif() - if(_COMPILER_TEST_RESULT AND ((MSVC AND (MSVC14)) OR - (CMAKE_COMPILER_IS_GNUCXX AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.9.2) OR - (CMAKE_CXX_COMPILER_ID STREQUAL "QCC" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.9.2) OR - (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 3.4) OR - (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))) - set(${_VAR} 1) - message(STATUS "Checking for C++17 compiler - available") - else() - message(STATUS "Checking for C++17 compiler - unavailable") - endif() -endmacro() +function(check_for_cxx17_compiler _VAR) + message(STATUS "Checking for C++17 compiler") + + set(_test_source ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/test_compiler.cpp) + + set(${_VAR} PARENT_SCOPE) + try_compile(_COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${_test_source} CMAKE_FLAGS -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON) + if(NOT _COMPILER_TEST_RESULT AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + try_compile( + _COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${_test_source} + CMAKE_FLAGS + -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON + ) + if(_COMPILER_TEST_RESULT) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") + else() + message(STATUS "To enable C++17 install libc++ standard library from https://libcxx.llvm.org/") + endif() + endif() + + if(_COMPILER_TEST_RESULT AND ((MSVC AND (MSVC14)) OR + (CMAKE_COMPILER_IS_GNUCXX AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.9.2) OR + (CMAKE_CXX_COMPILER_ID STREQUAL "QCC" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.9.2) OR + (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 3.4) OR + (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))) + set(${_VAR} 1 PARENT_SCOPE) + message(STATUS "Checking for C++17 compiler - available") + else() + message(STATUS "Checking for C++17 compiler - unavailable") + endif() +endfunction() diff --git a/cmake/test_compiler.cpp b/cmake/test_compiler.cpp index d9b7398e7..b3c3f72d4 100644 --- a/cmake/test_compiler.cpp +++ b/cmake/test_compiler.cpp @@ -1,9 +1,13 @@ #include #include +#include + +using namespace std::literals; int main() { - std::string str = "Try to compile"; - std::cout << str << '\n'; + std::optional option; + std::string str = "Try to compile"s; + std::cout << str << " "s << option.has_value() << '\n'; return 0; }