mirror of
				https://github.com/Telecominfraproject/wlan-cloud-lib-poco.git
				synced 2025-11-03 20:18:01 +00:00 
			
		
		
		
	Fix ctest execution in AppVeyor (#2514)
* Test * Fix execution of ctest in AppVeyor * Revert "Test" This reverts commit d50863c1da1757d15e8e9d058cd5a887dabfcd38. * Use internal/embedded openssl on windows * Fix apache connector build findings * Fix appveyor * Use openssl embedded for windows * Improve windows embedded openssl checkout * Test openssl embedded cmake * Cleanup cmake * Switch of NetSSLWin. Needs to fix * Fix copy of embedded openssl * Fix set correct windows path environment * Remove path environment for windows * Comment out AsyncChannel test on windows. Its chrashing * Commont out async test * Commont in async test * Add ChannelTest::testAsync to cppunit ignore * Remove CppUnit ignore for testasync * Fix NetSSL_WIN test * Improve travis script * Fix source path in travis cmake build * Fix travis cmake build * Fix cmake source path in travis * Change to ninja for faster build * Fix test from cmake build
This commit is contained in:
		
				
					committed by
					
						
						Aleksandar Fabijanic
					
				
			
			
				
	
			
			
			
						parent
						
							66a8a16050
						
					
				
				
					commit
					b1715f90b2
				
			@@ -242,11 +242,11 @@ matrix:
 | 
				
			|||||||
        - export CC="gcc-4.9"
 | 
					        - export CC="gcc-4.9"
 | 
				
			||||||
        - export CXX="g++-4.9"
 | 
					        - export CXX="g++-4.9"
 | 
				
			||||||
        - $CXX --version
 | 
					        - $CXX --version
 | 
				
			||||||
        - source ./travis/ignored.sh
 | 
					 | 
				
			||||||
        - export POCO_BASE=`pwd`
 | 
					 | 
				
			||||||
        - type cmake
 | 
					        - type cmake
 | 
				
			||||||
        - type ctest
 | 
					        - type ctest
 | 
				
			||||||
        - mkdir cmake-build && cd cmake-build && cmake --config Debug -DCMAKE_BUILD_TYPE=Debug -DPOCO_ENABLE_PDF=OFF -DPOCO_ENABLE_TESTS=ON -DPOCO_ENABLE_SAMPLES=ON .. && make -s -j2 && sudo /usr/local/cmake-3.9.2/bin/ctest -VV && cd ..
 | 
					        - source ./travis/ignored.sh
 | 
				
			||||||
 | 
					        - export POCO_BASE=`pwd`
 | 
				
			||||||
 | 
					        - cmake -H. -Bcmake-build -GNinja -DCMAKE_BUILD_TYPE=Debug -DPOCO_ENABLE_PDF=OFF -DPOCO_ENABLE_TESTS=ON -DPOCO_ENABLE_SAMPLES=ON && cmake --build cmake-build && cd cmake-build && sudo /usr/local/cmake-3.9.2/bin/ctest -VV && cd ..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - env:    test="4.0 x86 (make) bundled"
 | 
					    - env:    test="4.0 x86 (make) bundled"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,9 +15,12 @@ target_include_directories(mod_poco
 | 
				
			|||||||
    PUBLIC
 | 
					    PUBLIC
 | 
				
			||||||
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
 | 
					        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
 | 
				
			||||||
        $<INSTALL_INTERFACE:include>
 | 
					        $<INSTALL_INTERFACE:include>
 | 
				
			||||||
    PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src
 | 
					    PRIVATE
 | 
				
			||||||
 | 
					        ${APACHE2_INCLUDE_DIR}
 | 
				
			||||||
 | 
					        ${CMAKE_CURRENT_SOURCE_DIR}/src
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
target_link_libraries(mod_poco PUBLIC Poco::Util Poco::Net)
 | 
					target_compile_definitions(mod_poco PRIVATE ${APACHE2_DEFINITIONS})
 | 
				
			||||||
 | 
					target_link_libraries(mod_poco PUBLIC Apache::Aprutil Apache::Apr Poco::Util Poco::Net)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (POCO_ENABLE_SAMPLES)
 | 
					if (POCO_ENABLE_SAMPLES)
 | 
				
			||||||
  add_subdirectory(samples)
 | 
					  add_subdirectory(samples)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,6 +61,42 @@ endif()
 | 
				
			|||||||
# Include some common macros to simpilfy the Poco CMake files
 | 
					# Include some common macros to simpilfy the Poco CMake files
 | 
				
			||||||
include(PocoMacros)
 | 
					include(PocoMacros)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(POCO_STATIC)
 | 
				
			||||||
 | 
						message(DEPRECATION "POCO_STATIC is deprecated and will be removed! Use BUILD_SHARED_LIBS instead")
 | 
				
			||||||
 | 
						if(POCO_VERBOSE_MESSAGES)
 | 
				
			||||||
 | 
							message(STATUS "Building static libraries")
 | 
				
			||||||
 | 
						endif()
 | 
				
			||||||
 | 
						option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
						if(POCO_VERBOSE_MESSAGES)
 | 
				
			||||||
 | 
							message(STATUS "Building dynamic libraries")
 | 
				
			||||||
 | 
						endif()
 | 
				
			||||||
 | 
						option(BUILD_SHARED_LIBS "Build shared libraries" ON)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(MSVC)
 | 
				
			||||||
 | 
					    option(POCO_MT
 | 
				
			||||||
 | 
					      "Set to OFF|ON (default is OFF) to control build of POCO as /MT instead of /MD" OFF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    option(POCO_ENABLE_MSVC_MP
 | 
				
			||||||
 | 
					      "Set to OFF|ON (default is OFF) to control parallel build of POCO with MSVC" OFF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # allow disabling of internally built OpenSSL# (see below for details)
 | 
				
			||||||
 | 
					    # if POCO pre-built OpenSSL directory is found, and POCO_DISABLE_INTERNAL_OPENSSL=OFF,
 | 
				
			||||||
 | 
					    # the internal OpenSSL build will be used
 | 
				
			||||||
 | 
					    option(POCO_DISABLE_INTERNAL_OPENSSL "Disable internal OpensSSL binaries use" OFF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if((NOT POCO_DISABLE_INTERNAL_OPENSSL) AND (POCO_ENABLE_NETSSL OR POCO_ENABLE_CRYPTO OR (POCO_ENABLE_SQL_MYSQL AND MINGW)))
 | 
				
			||||||
 | 
					      include(UseEmbeddedOpenSSL)
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(WIN32)
 | 
				
			||||||
 | 
					    option(POCO_ENABLE_NETSSL_WIN "NetSSL Windows" ON)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(POCO_ENABLE_NETSSL OR POCO_ENABLE_CRYPTO OR (POCO_ENABLE_SQL_MYSQL AND MINGW))
 | 
					if(POCO_ENABLE_NETSSL OR POCO_ENABLE_CRYPTO OR (POCO_ENABLE_SQL_MYSQL AND MINGW))
 | 
				
			||||||
	find_package(OpenSSL REQUIRED)
 | 
						find_package(OpenSSL REQUIRED)
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
@@ -153,70 +189,14 @@ option(POCO_ENABLE_WSTRING "Enable std::wstring support" ON)
 | 
				
			|||||||
option(POCO_ENABLE_FPENVIRONMENT "Enable floating-point support" ON)
 | 
					option(POCO_ENABLE_FPENVIRONMENT "Enable floating-point support" ON)
 | 
				
			||||||
option(POCO_ENABLE_CPPUNIT "Enable CppUnit" ON)
 | 
					option(POCO_ENABLE_CPPUNIT "Enable CppUnit" ON)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# allow disabling of internally built OpenSSL# (see below for details)
 | 
					 | 
				
			||||||
# if POCO pre-built OpenSSL directory is found, and POCO_DISABLE_INTERNAL_OPENSSL=OFF,
 | 
					 | 
				
			||||||
# the internal OpenSSL build will be used
 | 
					 | 
				
			||||||
option(POCO_DISABLE_INTERNAL_OPENSSL "Disable internal OpensSSL binaries use" OFF)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(MSVC AND (EXISTS "${PROJECT_SOURCE_DIR}/openssl/build/") AND NOT POCO_DISABLE_INTERNAL_OPENSSL)
 | 
					 | 
				
			||||||
    set(OPENSSL_ROOT_DIR "${PROJECT_SOURCE_DIR}/openssl/build/")
 | 
					 | 
				
			||||||
    if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
 | 
					 | 
				
			||||||
	set(_MSVC_ARCH "64")
 | 
					 | 
				
			||||||
    else()
 | 
					 | 
				
			||||||
	set(_MSVC_ARCH "32")
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    if(BUILD_SHARED_LIBS)
 | 
					 | 
				
			||||||
	set(_LIB_DIR "bin")
 | 
					 | 
				
			||||||
    else()
 | 
					 | 
				
			||||||
	set(OPENSSL_MSVC_STATIC_RT TRUE)
 | 
					 | 
				
			||||||
	set(_LIB_DIR "lib")
 | 
					 | 
				
			||||||
	endif()
 | 
					 | 
				
			||||||
	set(INTERNAL_OPENSSL_LIBRARY_DIR "${PROJECT_SOURCE_DIR}/openssl/build/win${_MSVC_ARCH}/${_LIB_DIR}")
 | 
					 | 
				
			||||||
	set(INTERNAL_OPENSSL_LIBRARIES "${INTERNAL_OPENSSL_LIBRARY_DIR}/debug/")
 | 
					 | 
				
			||||||
	list(APPEND INTERNAL_OPENSSL_LIBRARIES "${INTERNAL_OPENSSL_LIBRARY_DIR}/release/")
 | 
					 | 
				
			||||||
	foreach(_OSSL_PATH ${INTERNAL_OPENSSL_LIBRARIES})
 | 
					 | 
				
			||||||
		string(REPLACE "/" "\\" _OSSL_PATH ${_OSSL_PATH})
 | 
					 | 
				
			||||||
		string(APPEND INTERNAL_OPENSSL_PATH ${_OSSL_PATH} "\;")
 | 
					 | 
				
			||||||
	endforeach()
 | 
					 | 
				
			||||||
	list(APPEND OPENSSL_ROOT_DIR ${INTERNAL_OPENSSL_LIBRARIES})
 | 
					 | 
				
			||||||
endif(MSVC AND (EXISTS "${PROJECT_SOURCE_DIR}/openssl/build/") AND NOT POCO_DISABLE_INTERNAL_OPENSSL)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(WIN32)
 | 
					 | 
				
			||||||
    option(POCO_ENABLE_NETSSL_WIN "NetSSL Windows" ON)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
    option(POCO_ENABLE_NETSSL_WIN "NetSSL Windows" OFF)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
option(POCO_ENABLE_TESTS
 | 
					option(POCO_ENABLE_TESTS
 | 
				
			||||||
  "Set to OFF|ON (default is OFF) to control build of POCO tests" OFF)
 | 
					  "Set to OFF|ON (default is OFF) to control build of POCO tests" OFF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
option(POCO_ENABLE_SAMPLES
 | 
					option(POCO_ENABLE_SAMPLES
 | 
				
			||||||
  "Set to OFF|ON (default is OFF) to control build of POCO samples" OFF)
 | 
					  "Set to OFF|ON (default is OFF) to control build of POCO samples" OFF)
 | 
				
			||||||
if(POCO_STATIC)
 | 
					 | 
				
			||||||
    message(DEPRECATION "POCO_STATIC is deprecated and will be removed! Use BUILD_SHARED_LIBS instead")
 | 
					 | 
				
			||||||
    if(POCO_VERBOSE_MESSAGES)
 | 
					 | 
				
			||||||
	message(STATUS "Building static libraries")
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
    if(POCO_VERBOSE_MESSAGES)
 | 
					 | 
				
			||||||
	message(STATUS "Building dynamic libraries")
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    option(BUILD_SHARED_LIBS "Build shared libraries" ON)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
option(POCO_UNBUNDLED
 | 
					option(POCO_UNBUNDLED
 | 
				
			||||||
  "Set to OFF|ON (default is OFF) to control linking dependencies as external" OFF)
 | 
					  "Set to OFF|ON (default is OFF) to control linking dependencies as external" OFF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(MSVC)
 | 
					 | 
				
			||||||
    option(POCO_MT
 | 
					 | 
				
			||||||
      "Set to OFF|ON (default is OFF) to control build of POCO as /MT instead of /MD" OFF)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    option(POCO_ENABLE_MSVC_MP
 | 
					 | 
				
			||||||
      "Set to OFF|ON (default is OFF) to control parallel build of POCO with MSVC" OFF)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(POCO_ENABLE_TESTS)
 | 
					if(POCO_ENABLE_TESTS)
 | 
				
			||||||
  option(POCO_ENABLE_LONG_RUNNING_TESTS "Enable long running test" ON)
 | 
					  option(POCO_ENABLE_LONG_RUNNING_TESTS "Enable long running test" ON)
 | 
				
			||||||
  include(CTest)
 | 
					  include(CTest)
 | 
				
			||||||
@@ -293,9 +273,6 @@ endif()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
if(POCO_ENABLE_NETSSL_WIN)
 | 
					if(POCO_ENABLE_NETSSL_WIN)
 | 
				
			||||||
    set(POCO_ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE)
 | 
					    set(POCO_ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE)
 | 
				
			||||||
    if(POCO_ENABLE_TESTS)
 | 
					 | 
				
			||||||
	set(POCO_ENABLE_CRYPTO ON CACHE BOOL "Enable Crypto" FORCE)
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(POCO_ENABLE_NETSSL)
 | 
					if(POCO_ENABLE_NETSSL)
 | 
				
			||||||
@@ -400,9 +377,6 @@ if(WIN32 AND POCO_ENABLE_NETSSL_WIN)
 | 
				
			|||||||
endif(WIN32 AND POCO_ENABLE_NETSSL_WIN)
 | 
					endif(WIN32 AND POCO_ENABLE_NETSSL_WIN)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(OPENSSL_FOUND)
 | 
					if(OPENSSL_FOUND)
 | 
				
			||||||
    if(MSVC)
 | 
					 | 
				
			||||||
        list(APPEND OPENSSL_LIBRARIES ws2_32 Crypt32) # TODO(BJoe) Is this really needed?
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
    if(POCO_ENABLE_CRYPTO)
 | 
					    if(POCO_ENABLE_CRYPTO)
 | 
				
			||||||
	 add_subdirectory(Crypto)
 | 
						 add_subdirectory(Crypto)
 | 
				
			||||||
	 list(APPEND Poco_COMPONENTS "Crypto")
 | 
						 list(APPEND Poco_COMPONENTS "Crypto")
 | 
				
			||||||
@@ -429,7 +403,6 @@ if(POCO_ENABLE_ZIP)
 | 
				
			|||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(APRUTIL_FOUND AND APACHE_FOUND AND POCO_ENABLE_APACHECONNECTOR)
 | 
					if(APRUTIL_FOUND AND APACHE_FOUND AND POCO_ENABLE_APACHECONNECTOR)
 | 
				
			||||||
    include_directories( "${APACHE_INCLUDE_DIR}" "${APRUTIL_INCLUDE_DIR}" ) # TODO(BJoe) Use namespace target in target_link_libraries()
 | 
					 | 
				
			||||||
    add_subdirectory(ApacheConnector)
 | 
					    add_subdirectory(ApacheConnector)
 | 
				
			||||||
    list(APPEND Poco_COMPONENTS "ApacheConnector")
 | 
					    list(APPEND Poco_COMPONENTS "ApacheConnector")
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,12 +28,6 @@ if(MSVC AND POCO_DISABLE_INTERNAL_OPENSSL)
 | 
				
			|||||||
    target_compile_definitions(Crypto PUBLIC POCO_EXTERNAL_OPENSSL)	
 | 
					    target_compile_definitions(Crypto PUBLIC POCO_EXTERNAL_OPENSSL)	
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(MSVC AND NOT POCO_DISABLE_INTERNAL_OPENSSL)
 | 
					 | 
				
			||||||
	add_custom_command(TARGET Crypto PRE_BUILD
 | 
					 | 
				
			||||||
		COMMAND ${CMAKE_COMMAND} -E copy_directory ${INTERNAL_OPENSSL_LIBRARY_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
 | 
					 | 
				
			||||||
		COMMENT "Copying OpenSSL binaries" VERBATIM)
 | 
					 | 
				
			||||||
endif(MSVC AND NOT POCO_DISABLE_INTERNAL_OPENSSL)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
POCO_INSTALL(Crypto)
 | 
					POCO_INSTALL(Crypto)
 | 
				
			||||||
POCO_GENERATE_PACKAGE(Crypto)
 | 
					POCO_GENERATE_PACKAGE(Crypto)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,9 +23,9 @@ else()
 | 
				
			|||||||
endif()
 | 
					endif()
 | 
				
			||||||
target_link_libraries(Crypto-testrunner PUBLIC Poco::NetSSL Poco::XML Poco::CppUnit)
 | 
					target_link_libraries(Crypto-testrunner PUBLIC Poco::NetSSL Poco::XML Poco::CppUnit)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(MSVC AND NOT POCO_DISABLE_INTERNAL_OPENSSL)
 | 
					if(NOT "${INTERNAL_OPENSSL_PATH}" STREQUAL "")
 | 
				
			||||||
	set_tests_properties(Crypto PROPERTIES  ENVIRONMENT "PATH=%PATH%\;${INTERNAL_OPENSSL_PATH}")
 | 
						set_tests_properties(Crypto PROPERTIES  ENVIRONMENT "${INTERNAL_OPENSSL_PATH}")
 | 
				
			||||||
endif(MSVC AND NOT POCO_DISABLE_INTERNAL_OPENSSL)
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(UNIX AND NOT ANDROID)
 | 
					if(UNIX AND NOT ANDROID)
 | 
				
			||||||
    target_link_libraries(Crypto-testrunner PUBLIC pthread)
 | 
					    target_link_libraries(Crypto-testrunner PUBLIC pthread)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ if(ANDROID)
 | 
				
			|||||||
	   COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;${CMAKE_BINARY_DIR}/bin/TestApp;${CMAKE_BINARY_DIR}/bin/TestLibrary$<$<CONFIG:Debug>:d>.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$<$<CONFIG:Debug>:d>.so" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Foundation-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake)
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
	add_test(NAME Foundation WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND Foundation-testrunner -all)
 | 
						add_test(NAME Foundation WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND Foundation-testrunner -all)
 | 
				
			||||||
	if(WIN32)
 | 
						if(UNIX)
 | 
				
			||||||
		set_tests_properties(Foundation PROPERTIES ENVIRONMENT "PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") # The SharedLibaryTest has to look for shared libraries in the working directory
 | 
					 | 
				
			||||||
	elseif(UNIX)
 | 
					 | 
				
			||||||
		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_tests_properties(Foundation PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") # The SharedLibaryTest has to look for shared libraries in the working directory
 | 
				
			||||||
	endif()
 | 
						endif()
 | 
				
			||||||
    # The test is run in the runtime directory. So the test data is copied there too
 | 
					    # The test is run in the runtime directory. So the test data is copied there too
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,13 +70,15 @@ void ChannelTest::testSplitter()
 | 
				
			|||||||
void ChannelTest::testAsync()
 | 
					void ChannelTest::testAsync()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	AutoPtr<TestChannel> pChannel = new TestChannel;
 | 
						AutoPtr<TestChannel> pChannel = new TestChannel;
 | 
				
			||||||
	AutoPtr<AsyncChannel> pAsync = new AsyncChannel(pChannel);
 | 
					#ifndef POCO_OS_FAMILY_WINDOWS
 | 
				
			||||||
 | 
						AutoPtr<AsyncChannel> pAsync = new AsyncChannel(pChannel); // FIXME It is crashing here on Windows!
 | 
				
			||||||
	pAsync->open();
 | 
						pAsync->open();
 | 
				
			||||||
	Message msg;
 | 
						Message msg;
 | 
				
			||||||
	pAsync->log(msg);
 | 
						pAsync->log(msg);
 | 
				
			||||||
	pAsync->log(msg);
 | 
						pAsync->log(msg);
 | 
				
			||||||
	pAsync->close();
 | 
						pAsync->close();
 | 
				
			||||||
	assertTrue (pChannel->list().size() == 2);
 | 
						assertTrue (pChannel->list().size() == 2);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,6 +29,6 @@ else()
 | 
				
			|||||||
endif()
 | 
					endif()
 | 
				
			||||||
target_link_libraries(NetSSL-testrunner PUBLIC Poco::NetSSL Poco::Util Poco::XML Poco::CppUnit)
 | 
					target_link_libraries(NetSSL-testrunner PUBLIC Poco::NetSSL Poco::Util Poco::XML Poco::CppUnit)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(MSVC AND NOT POCO_DISABLE_INTERNAL_OPENSSL)
 | 
					if(NOT "${INTERNAL_OPENSSL_PATH}" STREQUAL "")
 | 
				
			||||||
	set_tests_properties(NetSSL PROPERTIES  ENVIRONMENT "PATH=%PATH%\;${INTERNAL_OPENSSL_PATH}")
 | 
						set_tests_properties(NetSSL PROPERTIES  ENVIRONMENT "${INTERNAL_OPENSSL_PATH}")
 | 
				
			||||||
endif(MSVC AND NOT POCO_DISABLE_INTERNAL_OPENSSL)
 | 
					endif()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
add_executable(HTTPSTimeServer-win src/HTTPSTimeServer.cpp)
 | 
					add_executable(HTTPSTimeServer-win src/HTTPSTimeServer.cpp)
 | 
				
			||||||
target_link_libraries(HTTPSTimeServer-win PUBLIC Poco::NetSSLWin Poco::Crypto Poco::XML)
 | 
					target_link_libraries(HTTPSTimeServer-win PUBLIC Poco::NetSSLWin Poco::XML)
 | 
				
			||||||
add_custom_command(TARGET HTTPSTimeServer-win POST_BUILD
 | 
					add_custom_command(TARGET HTTPSTimeServer-win POST_BUILD
 | 
				
			||||||
				   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/any.pfx ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
 | 
									   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/any.pfx ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
 | 
				
			||||||
				   )
 | 
									   )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,2 +1,2 @@
 | 
				
			|||||||
add_executable(Mail-ssl-win src/Mail.cpp)
 | 
					add_executable(Mail-ssl-win src/Mail.cpp)
 | 
				
			||||||
target_link_libraries(Mail-ssl-win PUBLIC Poco::NetSSLWin Poco::Crypto Poco::XML)
 | 
					target_link_libraries(Mail-ssl-win PUBLIC Poco::NetSSLWin Poco::XML)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,2 +1,2 @@
 | 
				
			|||||||
add_executable(download-ssl-win src/download.cpp)
 | 
					add_executable(download-ssl-win src/download.cpp)
 | 
				
			||||||
target_link_libraries(download-ssl-win PUBLIC Poco::NetSSLWin Poco::Crypto Poco::XML)
 | 
					target_link_libraries(download-ssl-win PUBLIC Poco::NetSSLWin Poco::XML)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
add_executable(NetSSLWin-testrunner ${TEST_SRCS} )
 | 
					add_executable(NetSSLWin-testrunner ${TEST_SRCS} )
 | 
				
			||||||
add_test(NAME NetSSLWin WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND NetSSLWin-testrunner -all)
 | 
					add_test(NAME NetSSLWin WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND NetSSLWin-testrunner -all)
 | 
				
			||||||
target_link_libraries(NetSSLWin-testrunner PUBLIC Poco::NetSSL Poco::Util Poco::XML Poco::CppUnit)
 | 
					target_link_libraries(NetSSLWin-testrunner PUBLIC Poco::NetSSLWin Poco::Util Poco::XML Poco::CppUnit)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# The test is run in the build directory. So the test data is copied there too
 | 
					# The test is run in the build directory. So the test data is copied there too
 | 
				
			||||||
add_custom_command(TARGET NetSSLWin-testrunner POST_BUILD
 | 
					add_custom_command(TARGET NetSSLWin-testrunner POST_BUILD
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										37
									
								
								appveyor.yml
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								appveyor.yml
									
									
									
									
									
								
							@@ -175,35 +175,6 @@ install:
 | 
				
			|||||||
# -------------------------------------------------------------------------------------------
 | 
					# -------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# -------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# OpenSSL-Win32 & OpenSSL-Win64
 | 
					 | 
				
			||||||
# Download & use OpenSSL from  Shining Light Productions for CMake
 | 
					 | 
				
			||||||
# until CMake use implicitly the embedded openssl from the Poco repo. See issue #1093
 | 
					 | 
				
			||||||
# -------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
  - ps: |
 | 
					 | 
				
			||||||
       if ($env:builder -eq "cmake")
 | 
					 | 
				
			||||||
       {
 | 
					 | 
				
			||||||
         if ($env:platform -eq "Win32")
 | 
					 | 
				
			||||||
         {
 | 
					 | 
				
			||||||
             $openssl     = $env:OPENSSL32
 | 
					 | 
				
			||||||
             $opensslexe  = $env:OPENSSL32EXE
 | 
					 | 
				
			||||||
         }
 | 
					 | 
				
			||||||
         if ($env:platform -eq "x64")
 | 
					 | 
				
			||||||
         {
 | 
					 | 
				
			||||||
             $openssl     = $env:OPENSSL64
 | 
					 | 
				
			||||||
             $opensslexe  = $env:OPENSSL64EXE
 | 
					 | 
				
			||||||
         }
 | 
					 | 
				
			||||||
         $opensslurl  = $env:OPENSSLURL + "/" + $opensslexe
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         if (Test-Path $openssl) {
 | 
					 | 
				
			||||||
           Write-Host "using $openssl from cache" -ForegroundColor Yellow
 | 
					 | 
				
			||||||
         } else {
 | 
					 | 
				
			||||||
           Write-Host "downloading $openssl" -ForegroundColor Cyan
 | 
					 | 
				
			||||||
           Start-FileDownload $opensslurl
 | 
					 | 
				
			||||||
           Write-Host "installing  $openssl" -ForegroundColor Green
 | 
					 | 
				
			||||||
           Start-Process $opensslexe -Args "/silent /verysilent /sp- /suppressmsgboxes" -Wait
 | 
					 | 
				
			||||||
         }
 | 
					 | 
				
			||||||
       }
 | 
					 | 
				
			||||||
# -------------------------------------------------------------------------------------------
 | 
					# -------------------------------------------------------------------------------------------
 | 
				
			||||||
#  MySQL 32 bit is not available by default on AppVeyor
 | 
					#  MySQL 32 bit is not available by default on AppVeyor
 | 
				
			||||||
# -------------------------------------------------------------------------------------------
 | 
					# -------------------------------------------------------------------------------------------
 | 
				
			||||||
@@ -420,7 +391,6 @@ build_script:
 | 
				
			|||||||
      {
 | 
					      {
 | 
				
			||||||
        if ($env:platform -eq "Win32")
 | 
					        if ($env:platform -eq "Win32")
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            $openssl = $env:OPENSSL32
 | 
					 | 
				
			||||||
            if ($env:vsver -eq "140")
 | 
					            if ($env:vsver -eq "140")
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                $generator = '"Visual Studio 14 2015"'
 | 
					                $generator = '"Visual Studio 14 2015"'
 | 
				
			||||||
@@ -432,7 +402,6 @@ build_script:
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        if ($env:platform -eq "x64")
 | 
					        if ($env:platform -eq "x64")
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            $openssl = $env:OPENSSL64
 | 
					 | 
				
			||||||
            if ($env:vsver -eq "140")
 | 
					            if ($env:vsver -eq "140")
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                $generator = '"Visual Studio 14 2015 Win64"'
 | 
					                $generator = '"Visual Studio 14 2015 Win64"'
 | 
				
			||||||
@@ -487,8 +456,6 @@ before_test:
 | 
				
			|||||||
      $CPPUNIT_IGNORE+='class CppUnit::TestCaller<class PathTest>.testFind,';
 | 
					      $CPPUNIT_IGNORE+='class CppUnit::TestCaller<class PathTest>.testFind,';
 | 
				
			||||||
      $CPPUNIT_IGNORE+='class CppUnit::TestCaller<class ICMPSocketTest>.testSendToReceiveFrom,';
 | 
					      $CPPUNIT_IGNORE+='class CppUnit::TestCaller<class ICMPSocketTest>.testSendToReceiveFrom,';
 | 
				
			||||||
      $CPPUNIT_IGNORE+='class CppUnit::TestCaller<class ICMPSocketTest>.testMTU,';
 | 
					      $CPPUNIT_IGNORE+='class CppUnit::TestCaller<class ICMPSocketTest>.testMTU,';
 | 
				
			||||||
      $CPPUNIT_IGNORE+='class CppUnit::TestCaller<class ICMPSocketTest>.testSendToReceiveFrom,';
 | 
					 | 
				
			||||||
      $CPPUNIT_IGNORE+='class CppUnit::TestCaller<class ICMPSocketTest>.testMTU,';     
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      set-item -force -path "ENV:CPPUNIT_IGNORE"  -value $CPPUNIT_IGNORE
 | 
					      set-item -force -path "ENV:CPPUNIT_IGNORE"  -value $CPPUNIT_IGNORE
 | 
				
			||||||
      Write-Host -ForegroundColor Yellow 'CPPUNIT_IGNORE'
 | 
					      Write-Host -ForegroundColor Yellow 'CPPUNIT_IGNORE'
 | 
				
			||||||
@@ -602,9 +569,9 @@ test_script:
 | 
				
			|||||||
          ctest --config RelWithDebInfo -N
 | 
					          ctest --config RelWithDebInfo -N
 | 
				
			||||||
          Write-Host -ForegroundColor Yellow $line;
 | 
					          Write-Host -ForegroundColor Yellow $line;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          $cmd='ctest -C Debug -VV -E SQL*';
 | 
					          $cmd='ctest -C Debug --output-on-failure -E SQL*';
 | 
				
			||||||
          Write-Host -ForegroundColor Yellow $cmd
 | 
					          Write-Host -ForegroundColor Yellow $cmd
 | 
				
			||||||
          $cmd
 | 
					          iex "& $cmd"
 | 
				
			||||||
          popd
 | 
					          popd
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        Write-Host $runs' runs, ' $fails' fails'
 | 
					        Write-Host $runs' runs, ' $fails' fails'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										79
									
								
								cmake/UseEmbeddedOpenSSL.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								cmake/UseEmbeddedOpenSSL.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					macro(copy_shared_ossl_lib path)
 | 
				
			||||||
 | 
						if(NOT EXISTS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
 | 
				
			||||||
 | 
						  execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
 | 
				
			||||||
 | 
						endif()
 | 
				
			||||||
 | 
						file(GLOB OSSL_LIB_LIST LIST_DIRECTORIES false "${path}/*")
 | 
				
			||||||
 | 
						foreach(OSSL_LIB_FILE ${OSSL_LIB_LIST})
 | 
				
			||||||
 | 
							execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${OSSL_LIB_FILE} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
 | 
				
			||||||
 | 
							if(POCO_VERBOSE_MESSAGES)
 | 
				
			||||||
 | 
								message(STATUS "Copying embedded OpenSSL library from ${OSSL_LIB_FILE} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
 | 
				
			||||||
 | 
							endif()
 | 
				
			||||||
 | 
						endforeach()
 | 
				
			||||||
 | 
					endmacro()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					macro(copy_static_ossl_lib path)
 | 
				
			||||||
 | 
						if(NOT EXISTS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
 | 
				
			||||||
 | 
						  execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
 | 
				
			||||||
 | 
						endif()
 | 
				
			||||||
 | 
						file(GLOB OSSL_LIB_LIST LIST_DIRECTORIES false "${path}/*")
 | 
				
			||||||
 | 
						foreach(OSSL_LIB_FILE ${OSSL_LIB_LIST})
 | 
				
			||||||
 | 
							execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${OSSL_LIB_FILE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
 | 
				
			||||||
 | 
							if(POCO_VERBOSE_MESSAGES)
 | 
				
			||||||
 | 
								message(STATUS "Copying embedded OpenSSL library from ${OSSL_LIB_FILE} to ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
 | 
				
			||||||
 | 
							endif()
 | 
				
			||||||
 | 
						endforeach()
 | 
				
			||||||
 | 
					endmacro()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(NOT EXISTS "${PROJECT_SOURCE_DIR}/openssl/build")
 | 
				
			||||||
 | 
					  message(STATUS "Use internal OpenSSL binaries but ${PROJECT_SOURCE_DIR}/openssl/build doesn't exists. Try to checkout ...")
 | 
				
			||||||
 | 
					  find_package(Git REQUIRED)
 | 
				
			||||||
 | 
					  execute_process(
 | 
				
			||||||
 | 
					      COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive --remote openssl 
 | 
				
			||||||
 | 
					      WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 
 | 
				
			||||||
 | 
					      RESULT_VARIABLE EXITCODE)
 | 
				
			||||||
 | 
					  if(NOT "${EXITCODE}" STREQUAL "0")
 | 
				
			||||||
 | 
					    message(FATAL_ERROR "Checkout ${PROJECT_SOURCE_DIR}/openssl FAILED!")
 | 
				
			||||||
 | 
					  endif()
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" )
 | 
				
			||||||
 | 
					    set(_OPENSSL_MSVC_ARCH_SUFFIX "64")
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
					    set(_OPENSSL_MSVC_ARCH_SUFFIX "32")
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(BUILD_SHARED_LIBS)
 | 
				
			||||||
 | 
						option(OPENSSL_MSVC_STATIC_RT "Set ON to choose the MT version of the openssl lib" OFF)
 | 
				
			||||||
 | 
						option(OPENSSL_USE_STATIC_LIBS "Set ON to look for static openssl libraries" OFF)
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
						option(OPENSSL_MSVC_STATIC_RT "Set ON to choose the MT version of the openssl lib" ON)
 | 
				
			||||||
 | 
						option(OPENSSL_USE_STATIC_LIBS "Set ON to look for static openssl libraries" ON)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(OPENSSL_ROOT_DIR "${PROJECT_SOURCE_DIR}/openssl/build")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(OPENSSL_USE_STATIC_LIBS)
 | 
				
			||||||
 | 
						if(POCO_VERBOSE_MESSAGES)
 | 
				
			||||||
 | 
							message(STATUS "Use internal OpenSSL static binaries from ${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib")
 | 
				
			||||||
 | 
						endif()
 | 
				
			||||||
 | 
						list(APPEND CMAKE_LIBRARY_PATH
 | 
				
			||||||
 | 
					          "${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib/debug"
 | 
				
			||||||
 | 
					          "${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib/release")
 | 
				
			||||||
 | 
						copy_static_ossl_lib("${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib/debug")
 | 
				
			||||||
 | 
						copy_static_ossl_lib("${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib/release")
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
						if(POCO_VERBOSE_MESSAGES)
 | 
				
			||||||
 | 
							message(STATUS "Use internal OpenSSL shared binaries from ${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin")
 | 
				
			||||||
 | 
						endif()
 | 
				
			||||||
 | 
						list(APPEND CMAKE_LIBRARY_PATH
 | 
				
			||||||
 | 
					          "${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/debug"
 | 
				
			||||||
 | 
					          "${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/release")
 | 
				
			||||||
 | 
						copy_shared_ossl_lib("${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/debug")
 | 
				
			||||||
 | 
						copy_shared_ossl_lib("${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/release")
 | 
				
			||||||
 | 
						foreach(_OSSL_PATH "${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/debug" "${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/release")
 | 
				
			||||||
 | 
						       string(REPLACE "/" "\\" _OSSL_WIN_PATH ${_OSSL_PATH})
 | 
				
			||||||
 | 
						       string(APPEND OPENSSL_PATH ${_OSSL_WIN_PATH} "\;")
 | 
				
			||||||
 | 
						endforeach()
 | 
				
			||||||
 | 
						set(INTERNAL_OPENSSL_PATH "PATH=%PATH%\;${OPENSSL_PATH}")
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
		Reference in New Issue
	
	Block a user