aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/cppcms
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/cppcms
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/cppcms')
-rw-r--r--vcpkg/ports/cppcms/dependencies.diff41
-rw-r--r--vcpkg/ports/cppcms/dllexport.diff13
-rw-r--r--vcpkg/ports/cppcms/fix_narrowing_error.patch13
-rw-r--r--vcpkg/ports/cppcms/no-tests-and-examples.patch33
-rw-r--r--vcpkg/ports/cppcms/portfile.cmake40
-rw-r--r--vcpkg/ports/cppcms/vcpkg.json18
6 files changed, 158 insertions, 0 deletions
diff --git a/vcpkg/ports/cppcms/dependencies.diff b/vcpkg/ports/cppcms/dependencies.diff
new file mode 100644
index 0000000..e202834
--- /dev/null
+++ b/vcpkg/ports/cppcms/dependencies.diff
@@ -0,0 +1,41 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a9c601b..aa35908 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -246,8 +246,8 @@ check_cxx_source_compiles(
+ CPPCMS_HAVE_FSEEKI64
+ )
+ if(NOT DISABLE_GZIP)
+- find_library(ZLIB NAMES z zdll zlib${ZLIB_SUFFIX} zlib)
+- find_path(ZLIB_INCLUDE_DIR zlib.h)
++ find_package(ZLIB REQUIRED)
++ set(ZLIB "${ZLIB_LIBRARIES}")
+ if(NOT ZLIB OR NOT ZLIB_INCLUDE_DIR)
+ set(DISABLE_GZIP ON)
+ message("Can't fild zlib - disabling compression support")
+@@ -403,8 +403,8 @@ if(NOT DISABLE_GCRYPT)
+ endif()
+
+ if(NOT DISABLE_OPENSSL)
+- find_path(OPENSSL_INCLUDE_DIR openssl/aes.h)
+- find_library(LIB_OPENSSL NAMES crypto libcrypto libeay32)
++ find_package(OpenSSL REQUIRED)
++ set(LIB_OPENSSL "${OPENSSL_CRYPTO_LIBRARIES}")
+ endif()
+
+ if (OPENSSL_INCLUDE_DIR AND LIB_OPENSSL)
+diff --git a/booster/CMakeLists.txt b/booster/CMakeLists.txt
+index 0687d1d..aeaaaa8 100644
+--- a/booster/CMakeLists.txt
++++ b/booster/CMakeLists.txt
+@@ -124,6 +124,10 @@ endif()
+
+ if(NOT DISABLE_ICU_LOCALE)
+ message("-- Looking for ICU libraries")
++ find_package(ICU REQUIRED COMPONENTS i18n uc data)
++ include_directories(${ICU_INCLUDE_DIRS})
++ set(ICU_I18N "${ICU_LIBRARIES}")
++elseif(0)
+
+ if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+ if(MSVC)
diff --git a/vcpkg/ports/cppcms/dllexport.diff b/vcpkg/ports/cppcms/dllexport.diff
new file mode 100644
index 0000000..aeb3d76
--- /dev/null
+++ b/vcpkg/ports/cppcms/dllexport.diff
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c91ec97..11d475b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -692,7 +692,7 @@ target_link_libraries(hello_world ${CPPCMS_LIB})
+ if(NOT DISABLE_TCPCACHE)
+ add_executable(cppcms_scale src/cache_server_main.cpp)
+ target_link_libraries(cppcms_scale ${CPPCMS_LIB})
+- if(WIN32 OR CYGWIN)
++ if(NOT DISABLE_SHARED)
+ set_target_properties(cppcms_scale PROPERTIES COMPILE_DEFINITIONS DLL_EXPORT)
+ endif()
+ endif()
diff --git a/vcpkg/ports/cppcms/fix_narrowing_error.patch b/vcpkg/ports/cppcms/fix_narrowing_error.patch
new file mode 100644
index 0000000..12c7b03
--- /dev/null
+++ b/vcpkg/ports/cppcms/fix_narrowing_error.patch
@@ -0,0 +1,13 @@
+diff --git a/src/session_win32_file_storage.cpp b/src/session_win32_file_storage.cpp
+index ce3fba330..a5e54be84 100644
+--- a/src/session_win32_file_storage.cpp
++++ b/src/session_win32_file_storage.cpp
+@@ -186,7 +186,7 @@ void session_file_storage::save_to_file(HANDLE h,time_t timeout,std::string cons
+ int64_t timeout;
+ uint32_t crc;
+ uint32_t size;
+- } tmp = { timeout, 0, in.size() };
++ } tmp = { timeout, 0, static_cast<uint32_t>(in.size()) };
+ impl::crc32_calc crc_calc;
+ crc_calc.process_bytes(in.data(),in.size());
+ tmp.crc=crc_calc.checksum();
diff --git a/vcpkg/ports/cppcms/no-tests-and-examples.patch b/vcpkg/ports/cppcms/no-tests-and-examples.patch
new file mode 100644
index 0000000..0914842
--- /dev/null
+++ b/vcpkg/ports/cppcms/no-tests-and-examples.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d2b91f5..c91ec97 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -647,7 +647,7 @@ add_custom_command(
+
+
+
+-if(NOT DISABLE_SHARED)
++if(installing-plugins)
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/skin3.cpp
+ COMMAND ${PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/bin/cppcms_tmpl_cc
+@@ -779,6 +779,7 @@ endif()
+ #####################################
+ # End of tests
+ #####################################
++set_target_properties(${ALL_TESTS} hello_world PROPERTIES EXCLUDE_FROM_ALL 1)
+
+ # These are use export
+ if(IS_WINDOWS AND NOT DISABLE_SHARED)
+diff --git a/booster/CMakeLists.txt b/booster/CMakeLists.txt
+index 822c470..0a95248 100644
+--- a/booster/CMakeLists.txt
++++ b/booster/CMakeLists.txt
+@@ -674,6 +674,7 @@ macro(add_booster_param_test MODULE TEST PARAMETER)
+ add_executable(${TEST_NAME} ${TEST_SRC})
+ target_link_libraries(${TEST_NAME} ${BOOSTER_LIB})
+ set_target_properties(${TEST_NAME} PROPERTIES COMPILE_DEFINITIONS "${EXE_COM_DEFS}")
++ set_target_properties(${TEST_NAME} PROPERTIES EXCLUDE_FROM_ALL 1)
+ add_test(${TEST_NAME} ${TEST_NAME} ${PARAMETER})
+ set_tests_properties(${TEST_NAME} PROPERTIES TIMEOUT 20)
+ endmacro()
diff --git a/vcpkg/ports/cppcms/portfile.cmake b/vcpkg/ports/cppcms/portfile.cmake
new file mode 100644
index 0000000..1b72ac9
--- /dev/null
+++ b/vcpkg/ports/cppcms/portfile.cmake
@@ -0,0 +1,40 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO artyom-beilis/cppcms
+ REF v${VERSION}
+ SHA512 b91da68b3e277cf3814f6772a2580db95d55a9022b165b44f9d2fde0bc13779e9198b45e1ebdbd10189cb192109a61777888ce0670644da1e64a0e1008a827a7
+ PATCHES
+ dependencies.diff
+ dllexport.diff
+ no-tests-and-examples.patch
+ fix_narrowing_error.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" DISABLE_SHARED)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DISABLE_STATIC)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DCMAKE_CXX_STANDARD=17
+ -DPYTHON=:
+ -DUSE_WINDOWS6_API=ON
+ -DDISABLE_SHARED=${DISABLE_SHARED}
+ -DDISABLE_STATIC=${DISABLE_STATIC}
+ -DDISABLE_GCRYPT=ON
+ -DDISABLE_ICONV=ON
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+
+file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+foreach(script IN ITEMS cppcms_tmpl_cc cppcms_run)
+ file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script}")
+endforeach()
+vcpkg_copy_tools(TOOL_NAMES cppcms_scale cppcms_make_key cppcms_config_find_param AUTO_CLEAN)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/MIT.TXT" "${SOURCE_PATH}/THIRD_PARTY_SOFTWARE.TXT")
diff --git a/vcpkg/ports/cppcms/vcpkg.json b/vcpkg/ports/cppcms/vcpkg.json
new file mode 100644
index 0000000..d3b9bb9
--- /dev/null
+++ b/vcpkg/ports/cppcms/vcpkg.json
@@ -0,0 +1,18 @@
+{
+ "name": "cppcms",
+ "version": "2.0.1",
+ "description": "CppCMS is a Free High Performance Web Development Framework (not a CMS) aimed at Rapid Web Application Development",
+ "homepage": "https://github.com/artyom-beilis/cppcms",
+ "license": null,
+ "supports": "!uwp",
+ "dependencies": [
+ "icu",
+ "openssl",
+ "pcre",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ "zlib"
+ ]
+}