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()

Reply via email to