aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/ctemplate
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/ctemplate')
-rw-r--r--vcpkg/ports/ctemplate/CMakeLists.txt96
-rw-r--r--vcpkg/ports/ctemplate/portfile.cmake23
-rw-r--r--vcpkg/ports/ctemplate/vcpkg.json18
3 files changed, 137 insertions, 0 deletions
diff --git a/vcpkg/ports/ctemplate/CMakeLists.txt b/vcpkg/ports/ctemplate/CMakeLists.txt
new file mode 100644
index 0000000..63e6fc6
--- /dev/null
+++ b/vcpkg/ports/ctemplate/CMakeLists.txt
@@ -0,0 +1,96 @@
+cmake_minimum_required(VERSION 3.5.1)
+project(libctemplate C CXX)
+
+# find_package(PythonInterp)
+if(NOT PYTHON_EXECUTABLE)
+ message(FATAL_ERROR "PYTHON_EXECUTABLE must be set")
+endif()
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+ add_definitions(-D_VARIADIC_MAX=10)
+endif()
+
+set(SOURCE_PATH ${PROJECT_SOURCE_DIR}/src)
+set(BASE_SOURCE_PATH ${SOURCE_PATH}/base)
+set(WINDOWS_SOURCE_PATH ${SOURCE_PATH}/windows)
+set(HTMLPARSER_SOURCE_PATH ${SOURCE_PATH}/htmlparser)
+
+set(COMMON_INCLUDES ${PROJECT_BINARY_DIR}/include)
+
+set(HTMLPARSER_CONFIG ${HTMLPARSER_SOURCE_PATH}/htmlparser_fsm.config)
+set(JSPASPER_CONFIG ${HTMLPARSER_SOURCE_PATH}/jsparser_fsm.config)
+set(FSM_GENERATOR ${HTMLPARSER_SOURCE_PATH}/generate_fsm.py)
+
+set(BASE_HEADERS
+ "${BASE_SOURCE_PATH}/arena.h"
+ "${BASE_SOURCE_PATH}/manual_constructor.h"
+ "${BASE_SOURCE_PATH}/mutex.h"
+ "${BASE_SOURCE_PATH}/small_map.h"
+ "${BASE_SOURCE_PATH}/thread_annotations.h"
+ "${BASE_SOURCE_PATH}/util.h"
+ "${BASE_SOURCE_PATH}/arena-inl.h"
+)
+
+set(
+ HTMLPARSER_HEADERS
+ "${HTMLPARSER_SOURCE_PATH}/htmlparser.h"
+ "${HTMLPARSER_SOURCE_PATH}/htmlparser_cpp.h"
+ "${HTMLPARSER_SOURCE_PATH}/jsparser.h"
+ "${HTMLPARSER_SOURCE_PATH}/statemachine.h"
+)
+set(SRC_FILES
+ "${SOURCE_PATH}/base/arena.cc"
+ "${SOURCE_PATH}/htmlparser/htmlparser.cc"
+ "${SOURCE_PATH}/htmlparser/jsparser.cc"
+ "${SOURCE_PATH}/htmlparser/statemachine.cc"
+ "${SOURCE_PATH}/per_expand_data.cc"
+ "${SOURCE_PATH}/template.cc"
+ "${SOURCE_PATH}/template_annotator.cc"
+ "${SOURCE_PATH}/template_cache.cc"
+ "${SOURCE_PATH}/template_dictionary.cc"
+ "${SOURCE_PATH}/template_modifiers.cc"
+ "${SOURCE_PATH}/template_namelist.cc"
+ "${SOURCE_PATH}/template_pathops.cc"
+ "${SOURCE_PATH}/template_string.cc"
+ "${SOURCE_PATH}/windows/port.cc"
+)
+
+file(COPY "${WINDOWS_SOURCE_PATH}/" DESTINATION ${COMMON_INCLUDES})
+file(COPY "${WINDOWS_SOURCE_PATH}/config.h" DESTINATION ${COMMON_INCLUDES}/windows)
+file(COPY "${WINDOWS_SOURCE_PATH}/port.h" DESTINATION ${COMMON_INCLUDES}/windows)
+file(COPY ${HTMLPARSER_HEADERS} DESTINATION ${COMMON_INCLUDES}/htmlparser)
+file(COPY ${BASE_HEADERS} DESTINATION ${COMMON_INCLUDES}/base)
+
+execute_process(
+ COMMAND ${PYTHON_EXECUTABLE} ${FSM_GENERATOR} ${HTMLPARSER_CONFIG}
+ WORKING_DIRECTORY ${COMMON_INCLUDES}/htmlparser
+ OUTPUT_VARIABLE HTMLPARSER_CONFIG_H
+)
+execute_process(
+ COMMAND ${PYTHON_EXECUTABLE} ${FSM_GENERATOR} ${JSPASPER_CONFIG}
+ WORKING_DIRECTORY ${COMMON_INCLUDES}/htmlparser
+ OUTPUT_VARIABLE JSPASPER_CONFIG_H
+)
+
+file(WRITE "${COMMON_INCLUDES}/htmlparser/htmlparser_fsm.h" "${HTMLPARSER_CONFIG_H}")
+file(WRITE "${COMMON_INCLUDES}/htmlparser/jsparser_fsm.h" "${JSPASPER_CONFIG_H}")
+
+include_directories(${COMMON_INCLUDES})
+
+add_library(libctemplate ${SRC_FILES})
+if(NOT BUILD_SHARED_LIBS)
+ # Note: CTEMPLATE_DLL_DECL should be empty to build static file
+ target_compile_definitions(libctemplate PRIVATE -DCTEMPLATE_DLL_DECL=)
+endif()
+
+install(
+ TARGETS libctemplate
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY "${COMMON_INCLUDES}/ctemplate" DESTINATION include FILES_MATCHING PATTERN "*.h")
+endif()
diff --git a/vcpkg/ports/ctemplate/portfile.cmake b/vcpkg/ports/ctemplate/portfile.cmake
new file mode 100644
index 0000000..5377c9d
--- /dev/null
+++ b/vcpkg/ports/ctemplate/portfile.cmake
@@ -0,0 +1,23 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OlafvdSpek/ctemplate
+ REF 1c397b63e62dc6547054f4711c27918aedce4c2d # accessed on 2020-09-14
+ SHA512 9691393cbb89972e95dba3cb802d0a0379f8f45cddc696e4ce223eb94887b3be46a9d999cac161069261ef63ba26fbdc392c53c3f977e1a7ae51768caa7739ea
+ HEAD_REF master
+)
+
+file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
+
+vcpkg_find_acquire_program(PYTHON3)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS "-DPYTHON_EXECUTABLE=${PYTHON3}"
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_cmake_install()
+
+file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/ctemplate" RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/vcpkg/ports/ctemplate/vcpkg.json b/vcpkg/ports/ctemplate/vcpkg.json
new file mode 100644
index 0000000..040c6e8
--- /dev/null
+++ b/vcpkg/ports/ctemplate/vcpkg.json
@@ -0,0 +1,18 @@
+{
+ "name": "ctemplate",
+ "version-date": "2020-09-14",
+ "port-version": 5,
+ "description": "C++ CTemplate system",
+ "homepage": "https://github.com/OlafvdSpek/ctemplate",
+ "supports": "windows & !arm",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}