mirror of
https://github.com/cemu-project/vcpkg.git
synced 2025-02-22 18:47:09 +01:00
[ctemplate] new port #543
This commit is contained in:
parent
df3f73d825
commit
88fd6f14d8
97
ports/ctemplate/CMakeLists.txt
Normal file
97
ports/ctemplate/CMakeLists.txt
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.5.1)
|
||||||
|
project(libctemplate C CXX)
|
||||||
|
|
||||||
|
# find_package(PythonInterp)
|
||||||
|
|
||||||
|
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}")
|
||||||
|
|
||||||
|
option(BUILD_SHARED_LIBRARY "Building shared library" ON)
|
||||||
|
|
||||||
|
include_directories(${COMMON_INCLUDES})
|
||||||
|
|
||||||
|
if(BUILD_SHARED_LIBRARY)
|
||||||
|
add_library(libctemplate SHARED ${SRC_FILES})
|
||||||
|
else()
|
||||||
|
add_library(libctemplate STATIC ${SRC_FILES} )
|
||||||
|
# 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}/" DESTINATION include FILES_MATCHING PATTERN "*.h")
|
||||||
|
endif()
|
3
ports/ctemplate/CONTROL
Normal file
3
ports/ctemplate/CONTROL
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Source: ctemplate
|
||||||
|
Version: 2017-06-23-44b7c5b918a08ad561c63e9d28beecb40c10ebca
|
||||||
|
Description: C++ CTemplate system
|
17
ports/ctemplate/fix-msvc.patch
Normal file
17
ports/ctemplate/fix-msvc.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
diff --git a/src/per_expand_data.cc b/src/per_expand_data.cc
|
||||||
|
index f8f3025..0a468cf 100644
|
||||||
|
--- a/src/per_expand_data.cc
|
||||||
|
+++ b/src/per_expand_data.cc
|
||||||
|
@@ -42,10 +42,12 @@ namespace ctemplate {
|
||||||
|
|
||||||
|
using std::string;
|
||||||
|
|
||||||
|
+#ifndef _MSC_VER
|
||||||
|
bool PerExpandData::DataEq::operator()(const char* s1, const char* s2) const {
|
||||||
|
return ((s1 == 0 && s2 == 0) ||
|
||||||
|
(s1 && s2 && *s1 == *s2 && strcmp(s1, s2) == 0));
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
PerExpandData::~PerExpandData() {
|
||||||
|
delete map_;
|
39
ports/ctemplate/portfile.cmake
Normal file
39
ports/ctemplate/portfile.cmake
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
include(vcpkg_common_functions)
|
||||||
|
|
||||||
|
set(GIT_REF 44b7c5b918a08ad561c63e9d28beecb40c10ebca)
|
||||||
|
vcpkg_from_github(
|
||||||
|
OUT_SOURCE_PATH SOURCE_PATH
|
||||||
|
REPO OlafvdSpek/ctemplate
|
||||||
|
REF 44b7c5b918a08ad561c63e9d28beecb40c10ebca
|
||||||
|
SHA512 b572f6d0d182e977d3a459e68bde6244dad7196c44c16407990dc1fb6a7a93bcd8d6851e515d50b6051c1d011f71695f895f6ab233664baadae0bf6a3d464305
|
||||||
|
HEAD_REF master
|
||||||
|
)
|
||||||
|
|
||||||
|
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
||||||
|
|
||||||
|
vcpkg_find_acquire_program(PYTHON2)
|
||||||
|
|
||||||
|
vcpkg_apply_patches(
|
||||||
|
SOURCE_PATH ${SOURCE_PATH}
|
||||||
|
PATCHES
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/fix-msvc.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
|
||||||
|
set (BUILD_SHARED_LIBRARY ON)
|
||||||
|
else()
|
||||||
|
set(BUILD_SHARED_LIBRARY OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
vcpkg_configure_cmake(
|
||||||
|
SOURCE_PATH ${SOURCE_PATH}
|
||||||
|
OPTIONS -DPYTHON_EXECUTABLE=${PYTHON2} -DBUILD_SHARED_LIBRARY=${BUILD_SHARED_LIBRARY}
|
||||||
|
OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_install_cmake()
|
||||||
|
|
||||||
|
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ctemplate RENAME copyright)
|
||||||
|
|
||||||
|
vcpkg_copy_pdbs()
|
Loading…
x
Reference in New Issue
Block a user