diff --git a/recipes/cppserver/all/conandata.yml b/recipes/cppserver/all/conandata.yml index c101e66da5ee2..ce20cb214520d 100644 --- a/recipes/cppserver/all/conandata.yml +++ b/recipes/cppserver/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.0.4.1": + url: "https://github.com/chronoxor/CppServer/archive/1.0.4.1.tar.gz" + sha256: "252f66d6c245641b9ed73eae77324513e597debd0615523d16b83b043d31035f" "1.0.2.0": url: "https://github.com/chronoxor/CppServer/archive/1.0.2.0.tar.gz" sha256: "512b2ada2ddebcedcfac814e3d0784ccef410506dab5dcf64c56302b40e042d4" @@ -9,6 +12,16 @@ sources: url: "https://github.com/chronoxor/CppServer/archive/1.0.0.0.tar.gz" sha256: "dc70fb24231ac4c06e813a0489ff911dd5c48f844b75856b1e753ac8dbd64772" patches: + "1.0.4.1": + - patch_file: "patches/0001-cmake-clean-up-1-0-4-1.patch" + patch_description: "use cci packages, disable test/example builds" + patch_type: "conan" + - patch_file: "patches/0002-define-win32-winnt-1-0-4-1.patch" + patch_description: "add win32/winnt defines" + patch_type: "portability" + - patch_file: "patches/0003-remove-asio-defines-1-0-0-0.patch" + patch_description: "remove asio defines" + patch_type: "portability" "1.0.2.0": - patch_file: "patches/0001-cmake-clean-up-1-0-2-0.patch" patch_description: "use cci packages, disable test/example builds" diff --git a/recipes/cppserver/all/conanfile.py b/recipes/cppserver/all/conanfile.py index 785bad0fb6e29..74994d3e8397b 100644 --- a/recipes/cppserver/all/conanfile.py +++ b/recipes/cppserver/all/conanfile.py @@ -57,17 +57,15 @@ def layout(self): cmake_layout(self, src_folder="src") def requirements(self): - self.requires("asio/1.27.0") + self.requires("asio/1.28.2", transitive_headers=True) self.requires("openssl/[>=1.1 <4]") - self.requires("cppcommon/1.0.3.0") + self.requires("cppcommon/1.0.4.0", transitive_headers=True) def validate(self): if self.settings.compiler.get_safe("cppstd"): check_min_cppstd(self, self._min_cppstd) minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False) - if not minimum_version: - self.output.warn(f"{self.ref} requires C++17. Your compiler is unknown. Assuming it supports C++17.") - elif Version(self.settings.compiler.version) < minimum_version: + if minimum_version and Version(self.settings.compiler.version) < minimum_version: raise ConanInvalidConfiguration(f"{self.ref} requires a compiler that supports at least C++17") def build_requirements(self): diff --git a/recipes/cppserver/all/patches/0001-cmake-clean-up-1-0-4-1.patch b/recipes/cppserver/all/patches/0001-cmake-clean-up-1-0-4-1.patch new file mode 100644 index 0000000000000..f85b41264ee76 --- /dev/null +++ b/recipes/cppserver/all/patches/0001-cmake-clean-up-1-0-4-1.patch @@ -0,0 +1,201 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f02f6d2..7349f1e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -18,53 +18,53 @@ if(DOXYGEN_FOUND) + endif() + + # CMake module path +-set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") ++#set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + + # Compiler features +-include(SetCompilerFeatures) +-include(SetCompilerWarnings) +-include(SetPlatformFeatures) +-include(SystemInformation) ++#include(SetCompilerFeatures) ++#include(SetCompilerWarnings) ++#include(SetPlatformFeatures) ++#include(SystemInformation) + + # External packages +-if(APPLE) +- set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl@1.1") +-elseif(CYGWIN) +- set(OPENSSL_ROOT_DIR "/usr/lib") +- set(OPENSSL_INCLUDE_DIR "/usr/include") +- set(OPENSSL_CRYPTO_LIBRARY "/usr/lib/libcrypto.dll.a") +- set(OPENSSL_SSL_LIBRARY "/usr/lib/libssl.dll.a") +-elseif(MINGW) +- set(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/modules/OpenSSL/MinGW") +- set(OPENSSL_USE_STATIC_LIBS TRUE) +-elseif(MSVC) +- set(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/modules/OpenSSL/VS") +- set(OPENSSL_USE_STATIC_LIBS TRUE) +- set(OPENSSL_MSVC_STATIC_RT TRUE) +-endif() ++#if(APPLE) ++# set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl@1.1") ++#elseif(CYGWIN) ++# set(OPENSSL_ROOT_DIR "/usr/lib") ++# set(OPENSSL_INCLUDE_DIR "/usr/include") ++# set(OPENSSL_CRYPTO_LIBRARY "/usr/lib/libcrypto.dll.a") ++# set(OPENSSL_SSL_LIBRARY "/usr/lib/libssl.dll.a") ++#elseif(MINGW) ++# set(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/modules/OpenSSL/MinGW") ++# set(OPENSSL_USE_STATIC_LIBS TRUE) ++#elseif(MSVC) ++# set(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/modules/OpenSSL/VS") ++# set(OPENSSL_USE_STATIC_LIBS TRUE) ++# set(OPENSSL_MSVC_STATIC_RT TRUE) ++#endif() + find_package(OpenSSL REQUIRED) +-if(WIN32) ++if(FALSE) + find_package(Crypt) + find_package(WinSock) + endif() + + # Modules +-add_subdirectory("modules") ++#add_subdirectory("modules") + + # Link libraries +-list(APPEND LINKLIBS ${OPENSSL_LIBRARIES}) ++list(APPEND LINKLIBS OpenSSL::SSL) + if(WIN32) +- list(APPEND LINKLIBS ${CRYPT_LIBRARIES}) +- list(APPEND LINKLIBS ${WINSOCK_LIBRARIES}) ++ list(APPEND LINKLIBS crypt32) ++ list(APPEND LINKLIBS ws2_32) + endif() +-list(APPEND LINKLIBS cppcommon) +- ++find_package(cppcommon REQUIRED) ++list(APPEND LINKLIBS cppcommon::cppcommon) + # OpenSSL libraries + message(STATUS "OpenSSL version: ${OPENSSL_VERSION} ${OPENSSL_INCLUDE_DIR} ${OPENSSL_LIBRARIES}") + + # System directories +-include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/modules") +- ++#include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/modules") ++find_package(asio REQUIRED) + # Library + file(GLOB_RECURSE LIB_HEADER_FILES "include/*.h" "source/*.h") + file(GLOB_RECURSE LIB_INLINE_FILES "include/*.inl" "source/*.inl") +@@ -72,10 +72,10 @@ file(GLOB_RECURSE LIB_SOURCE_FILES "include/*.cpp" "source/*.cpp") + add_library(cppserver ${LIB_HEADER_FILES} ${LIB_INLINE_FILES} ${LIB_SOURCE_FILES}) + set_target_properties(cppserver PROPERTIES COMPILE_FLAGS "${PEDANTIC_COMPILE_FLAGS}" FOLDER "libraries") + target_include_directories(cppserver PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") +-target_link_libraries(cppserver ${LINKLIBS} asio) ++target_link_libraries(cppserver ${LINKLIBS} asio::asio) + list(APPEND INSTALL_TARGETS cppserver) + list(APPEND LINKLIBS cppserver) +- ++target_compile_features(cppserver PUBLIC cxx_std_17) + # Additional module components: benchmarks, examples, plugins, tests, tools and install + if(NOT CPPSERVER_MODULE) + +@@ -91,59 +91,59 @@ if(NOT CPPSERVER_MODULE) + list(APPEND LINKLIBS proto) + + # Examples +- file(GLOB EXAMPLE_HEADER_FILES "examples/*.h") +- file(GLOB EXAMPLE_INLINE_FILES "examples/*.inl") +- file(GLOB EXAMPLE_SOURCE_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/examples" "examples/*.cpp") +- foreach(EXAMPLE_SOURCE_FILE ${EXAMPLE_SOURCE_FILES}) +- string(REGEX REPLACE "(.*)\\.cpp" "\\1" EXAMPLE_NAME ${EXAMPLE_SOURCE_FILE}) +- set(EXAMPLE_TARGET "cppserver-example-${EXAMPLE_NAME}") +- add_executable(${EXAMPLE_TARGET} ${EXAMPLE_HEADER_FILES} ${EXAMPLE_INLINE_FILES} "examples/${EXAMPLE_SOURCE_FILE}") +- set_target_properties(${EXAMPLE_TARGET} PROPERTIES COMPILE_FLAGS "${PEDANTIC_COMPILE_FLAGS}" FOLDER "examples") +- target_link_libraries(${EXAMPLE_TARGET} ${LINKLIBS}) +- list(APPEND INSTALL_TARGETS ${EXAMPLE_TARGET}) +- list(APPEND INSTALL_TARGETS_PDB ${EXAMPLE_TARGET}) +- endforeach() ++# file(GLOB EXAMPLE_HEADER_FILES "examples/*.h") ++# file(GLOB EXAMPLE_INLINE_FILES "examples/*.inl") ++# file(GLOB EXAMPLE_SOURCE_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/examples" "examples/*.cpp") ++# foreach(EXAMPLE_SOURCE_FILE ${EXAMPLE_SOURCE_FILES}) ++# string(REGEX REPLACE "(.*)\\.cpp" "\\1" EXAMPLE_NAME ${EXAMPLE_SOURCE_FILE}) ++# set(EXAMPLE_TARGET "cppserver-example-${EXAMPLE_NAME}") ++# add_executable(${EXAMPLE_TARGET} ${EXAMPLE_HEADER_FILES} ${EXAMPLE_INLINE_FILES} "examples/${EXAMPLE_SOURCE_FILE}") ++# set_target_properties(${EXAMPLE_TARGET} PROPERTIES COMPILE_FLAGS "${PEDANTIC_COMPILE_FLAGS}" FOLDER "examples") ++# target_link_libraries(${EXAMPLE_TARGET} ${LINKLIBS}) ++# list(APPEND INSTALL_TARGETS ${EXAMPLE_TARGET}) ++# list(APPEND INSTALL_TARGETS_PDB ${EXAMPLE_TARGET}) ++# endforeach() + + # Benchmarks +- file(GLOB BENCHMARK_HEADER_FILES "performance/*.h") +- file(GLOB BENCHMARK_INLINE_FILES "performance/*.inl") +- file(GLOB BENCHMARK_SOURCE_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/performance" "performance/*.cpp") +- foreach(BENCHMARK_SOURCE_FILE ${BENCHMARK_SOURCE_FILES}) +- string(REGEX REPLACE "(.*)\\.cpp" "\\1" BENCHMARK_NAME ${BENCHMARK_SOURCE_FILE}) +- set(BENCHMARK_TARGET "cppserver-performance-${BENCHMARK_NAME}") +- add_executable(${BENCHMARK_TARGET} ${BENCHMARK_HEADER_FILES} ${BENCHMARK_INLINE_FILES} "performance/${BENCHMARK_SOURCE_FILE}") +- set_target_properties(${BENCHMARK_TARGET} PROPERTIES COMPILE_FLAGS "${PEDANTIC_COMPILE_FLAGS}" FOLDER "performance") +- target_link_libraries(${BENCHMARK_TARGET} ${LINKLIBS} cppbenchmark) +- list(APPEND INSTALL_TARGETS ${BENCHMARK_TARGET}) +- list(APPEND INSTALL_TARGETS_PDB ${BENCHMARK_TARGET}) +- endforeach() ++# file(GLOB BENCHMARK_HEADER_FILES "performance/*.h") ++# file(GLOB BENCHMARK_INLINE_FILES "performance/*.inl") ++# file(GLOB BENCHMARK_SOURCE_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/performance" "performance/*.cpp") ++# foreach(BENCHMARK_SOURCE_FILE ${BENCHMARK_SOURCE_FILES}) ++# string(REGEX REPLACE "(.*)\\.cpp" "\\1" BENCHMARK_NAME ${BENCHMARK_SOURCE_FILE}) ++# set(BENCHMARK_TARGET "cppserver-performance-${BENCHMARK_NAME}") ++# add_executable(${BENCHMARK_TARGET} ${BENCHMARK_HEADER_FILES} ${BENCHMARK_INLINE_FILES} "performance/${BENCHMARK_SOURCE_FILE}") ++# set_target_properties(${BENCHMARK_TARGET} PROPERTIES COMPILE_FLAGS "${PEDANTIC_COMPILE_FLAGS}" FOLDER "performance") ++# target_link_libraries(${BENCHMARK_TARGET} ${LINKLIBS} cppbenchmark) ++# list(APPEND INSTALL_TARGETS ${BENCHMARK_TARGET}) ++# list(APPEND INSTALL_TARGETS_PDB ${BENCHMARK_TARGET}) ++# endforeach() + + # Tests +- file(GLOB TESTS_HEADER_FILES "tests/*.h") +- file(GLOB TESTS_INLINE_FILES "tests/*.inl") +- file(GLOB TESTS_SOURCE_FILES "tests/*.cpp") +- add_executable(cppserver-tests ${TESTS_HEADER_FILES} ${TESTS_INLINE_FILES} ${TESTS_SOURCE_FILES}) +- set_target_properties(cppserver-tests PROPERTIES COMPILE_FLAGS "${PEDANTIC_COMPILE_FLAGS}" FOLDER "tests") +- target_include_directories(cppserver-tests PRIVATE Catch2) +- target_link_libraries(cppserver-tests ${LINKLIBS} Catch2) +- list(APPEND INSTALL_TARGETS cppserver-tests) +- list(APPEND INSTALL_TARGETS_PDB cppserver-tests) ++# file(GLOB TESTS_HEADER_FILES "tests/*.h") ++# file(GLOB TESTS_INLINE_FILES "tests/*.inl") ++# file(GLOB TESTS_SOURCE_FILES "tests/*.cpp") ++# add_executable(cppserver-tests ${TESTS_HEADER_FILES} ${TESTS_INLINE_FILES} ${TESTS_SOURCE_FILES}) ++# set_target_properties(cppserver-tests PROPERTIES COMPILE_FLAGS "${PEDANTIC_COMPILE_FLAGS}" FOLDER "tests") ++# target_include_directories(cppserver-tests PRIVATE Catch2) ++# target_link_libraries(cppserver-tests ${LINKLIBS} Catch2) ++# list(APPEND INSTALL_TARGETS cppserver-tests) ++# list(APPEND INSTALL_TARGETS_PDB cppserver-tests) + + # CTest +- enable_testing() +- add_test(cppserver-tests cppserver-tests --durations yes --order lex) ++# enable_testing() ++# add_test(cppserver-tests cppserver-tests --durations yes --order lex) + + # Install + install(TARGETS ${INSTALL_TARGETS} +- RUNTIME DESTINATION "${PROJECT_SOURCE_DIR}/bin" +- LIBRARY DESTINATION "${PROJECT_SOURCE_DIR}/bin" +- ARCHIVE DESTINATION "${PROJECT_SOURCE_DIR}/bin") ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + # Install *.pdb files + if(MSVC) +- foreach(INSTALL_TARGET_PDB ${INSTALL_TARGETS_PDB}) +- install(FILES $ DESTINATION "${PROJECT_SOURCE_DIR}/bin") +- endforeach() ++# foreach(INSTALL_TARGET_PDB ${INSTALL_TARGETS_PDB}) ++# install(FILES $ DESTINATION "${PROJECT_SOURCE_DIR}/bin") ++# endforeach() + endif() + + endif() diff --git a/recipes/cppserver/all/patches/0002-define-win32-winnt-1-0-4-1.patch b/recipes/cppserver/all/patches/0002-define-win32-winnt-1-0-4-1.patch new file mode 100644 index 0000000000000..17587fab64f5a --- /dev/null +++ b/recipes/cppserver/all/patches/0002-define-win32-winnt-1-0-4-1.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 51f0246..a014af6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -76,6 +76,11 @@ target_link_libraries(cppserver ${LINKLIBS} asio::asio) + list(APPEND INSTALL_TARGETS cppserver) + list(APPEND LINKLIBS cppserver) + target_compile_features(cppserver PUBLIC cxx_std_17) ++ ++if(WIN32 AND NOT MSVC) ++ target_compile_definitions(cppserver PUBLIC -D_WIN32_WINNT=_WIN32_WINNT_VISTA) ++endif() ++ + # Additional module components: benchmarks, examples, plugins, tests, tools and install + if(NOT CPPSERVER_MODULE) + diff --git a/recipes/cppserver/config.yml b/recipes/cppserver/config.yml index bb5222f546170..b5b846715f96e 100644 --- a/recipes/cppserver/config.yml +++ b/recipes/cppserver/config.yml @@ -1,4 +1,6 @@ versions: + "1.0.4.1": + folder: all "1.0.2.0": folder: all "1.0.1.0":