This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a commit to branch vcpkg_pollution in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit 63c3594afa9b8024d57521d8ec8d4e97d6b452a5 Author: Stephen Webb <[email protected]> AuthorDate: Thu Jun 4 18:22:23 2026 +1000 Simplify Log4cxx development when using vcpkg --- CMakeLists.txt | 4 ++++ src/cmake/win32_target_environment_path.cmake | 15 ++++++++------- src/test/cpp/CMakeLists.txt | 27 ++++++++------------------- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 194a3e6b..58b6d0e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,10 @@ # limitations under the License. # cmake_minimum_required(VERSION 3.13) +if(DEFINED VCPKG_TARGET_TRIPLET) + # Prevent vcpkg copying an old log4cxx.dll to test build directories + set(VCPKG_APPLOCAL_DEPS OFF CACHE BOOL "Disable vcpkg auto copying of DLLs") +endif() include(src/cmake/projectVersionDetails.cmake) project(log4cxx VERSION ${log4cxx_VER} LANGUAGES CXX) include(CTest) diff --git a/src/cmake/win32_target_environment_path.cmake b/src/cmake/win32_target_environment_path.cmake index 1ee73ef3..085845b0 100644 --- a/src/cmake/win32_target_environment_path.cmake +++ b/src/cmake/win32_target_environment_path.cmake @@ -2,14 +2,15 @@ function(get_target_environment_path varName) get_filename_component(APR_DLL_DIR "${APR_DLL}" DIRECTORY) get_filename_component(APR_UTIL_DLL_DIR "${APR_UTIL_DLL}" DIRECTORY) - get_filename_component(EXPAT_LIB_DIR "${EXPAT_LIBRARY}" DIRECTORY) - - - set(EXPAT_DLL_DIR "${EXPAT_LIB_DIR}/../bin") set(LOG4CXX_DLL_DIR "$<SHELL_PATH:$<TARGET_FILE_DIR:log4cxx>>;") - set(PATH_FOR_TESTS ${CMAKE_PROGRAM_PATH};${APR_DLL_DIR};${APR_UTIL_DLL_DIR};${LOG4CXX_DLL_DIR};${EXPAT_DLL_DIR}\;) + set(PATH_FOR_TESTS "${LOG4CXX_DLL_DIR}" "${CMAKE_PROGRAM_PATH}" "${APR_DLL_DIR}" "${APR_UTIL_DLL_DIR}") + if(EXPAT_LIBRARY) + get_filename_component(EXPAT_LIB_DIR "${EXPAT_LIBRARY}" DIRECTORY) + set(EXPAT_DLL_DIR "${EXPAT_LIB_DIR}/../bin") + list(APPEND PATH_FOR_TESTS "${EXPAT_DLL_DIR}") + endif() if(LOG4CXX_QT_SUPPORT) - list(APPEND PATH_FOR_TESTS "$<SHELL_PATH:$<TARGET_FILE_DIR:log4cxx-qt>>\;") + list(APPEND PATH_FOR_TESTS "$<SHELL_PATH:$<TARGET_FILE_DIR:log4cxx-qt>>") endif(LOG4CXX_QT_SUPPORT) list(REMOVE_DUPLICATES PATH_FOR_TESTS) @@ -23,7 +24,7 @@ function(get_target_environment_path varName) # properly interpret the PATH set(NORMAL_PATH $ENV{PATH}) set(ESCAPED_PATH "") - foreach( ENTRY ${PATH_FOR_TESTS}${NORMAL_PATH} ) + foreach( ENTRY ${PATH_FOR_TESTS};${NORMAL_PATH} ) set(ESCAPED_PATH "${ESCAPED_PATH}${ENTRY}\\\;") endforeach() set(${varName} ${ESCAPED_PATH} PARENT_SCOPE) diff --git a/src/test/cpp/CMakeLists.txt b/src/test/cpp/CMakeLists.txt index 28ebd7cf..50486dc8 100644 --- a/src/test/cpp/CMakeLists.txt +++ b/src/test/cpp/CMakeLists.txt @@ -135,6 +135,10 @@ if(LOG4CXX_CFSTRING) set(CFSTR_TESTS filetestcase messagebuffertest leveltestcase streamtestcase transcodertestcase) endif() foreach(testName IN LISTS ALL_LOG4CXX_TESTS) + if(DEFINED VCPKG_TARGET_TRIPLET) + # stop vcpkg from polluting the CTest test wrapper scripts + set_property(TARGET ${testName} PROPERTY ENVIRONMENT "") + endif() if (${testName} STREQUAL "qtconfigurationtest") target_include_directories(${testName} PRIVATE $<TARGET_PROPERTY:log4cxx-qt,INCLUDE_DIRECTORIES>) target_compile_definitions(${testName} PRIVATE "QT_NO_KEYWORDS") @@ -168,14 +172,7 @@ foreach(testName IN LISTS ALL_LOG4CXX_TESTS) set_target_properties(${testName} PROPERTIES VS_DEBUGGER_COMMAND_ARGUMENTS "-v" ) - if(${testName} STREQUAL socketservertestcase) - set_target_properties(${testName} PROPERTIES - VS_DEBUGGER_ENVIRONMENT "SOCKET_SERVER_PARAMETER_FILE=${START_SOCKET_SERVER_PARAMETER_FILE}\nPATH=${ESCAPED_PATH}" - ) - set_tests_properties(socketservertestcase PROPERTIES - ENVIRONMENT "SOCKET_SERVER_PARAMETER_FILE=${START_SOCKET_SERVER_PARAMETER_FILE};PATH=${ESCAPED_PATH}" - ) - elseif(${testName} STREQUAL optionconvertertestcase) + if(${testName} STREQUAL optionconvertertestcase) set_target_properties(${testName} PROPERTIES VS_DEBUGGER_ENVIRONMENT "TOTO=wonderful\nkey1=value1\nkey2=value2\nPATH=${ESCAPED_PATH}" ) @@ -184,10 +181,10 @@ foreach(testName IN LISTS ALL_LOG4CXX_TESTS) ) else() set_target_properties(${testName} PROPERTIES - VS_DEBUGGER_ENVIRONMENT "key1=value1\nkey2=value2\nPATH=${ESCAPED_PATH}" + VS_DEBUGGER_ENVIRONMENT "PATH=${ESCAPED_PATH}" ) set_tests_properties(${testName} PROPERTIES - ENVIRONMENT "key1=value1;key2=value2;PATH=${ESCAPED_PATH}" + ENVIRONMENT "PATH=${ESCAPED_PATH}" ) endif() if(NOT BUILD_SHARED_LIBS) @@ -198,18 +195,10 @@ foreach(testName IN LISTS ALL_LOG4CXX_TESTS) set_target_properties(${testName} PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") endif() else() - if(${testName} STREQUAL socketservertestcase) - set_tests_properties(socketservertestcase PROPERTIES - ENVIRONMENT "SOCKET_SERVER_PARAMETER_FILE=${START_SOCKET_SERVER_PARAMETER_FILE}" - ) - elseif(${testName} STREQUAL optionconvertertestcase) + if(${testName} STREQUAL optionconvertertestcase) set_tests_properties(optionconvertertestcase PROPERTIES ENVIRONMENT "TOTO=wonderful;key1=value1;key2=value2" ) - else() - set_tests_properties(${testName} PROPERTIES - ENVIRONMENT "key1=value1;key2=value2" - ) endif() endif() endforeach()
