]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/ctemplate/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / ctemplate / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.5.1)
2 project(libctemplate C CXX)
3
4 # find_package(PythonInterp)
5 if(NOT PYTHON_EXECUTABLE)
6 message(FATAL_ERROR "PYTHON_EXECUTABLE must be set")
7 endif()
8
9 if(MSVC)
10 add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
11 add_definitions(-D_VARIADIC_MAX=10)
12 endif()
13
14 set(SOURCE_PATH ${PROJECT_SOURCE_DIR}/src)
15 set(BASE_SOURCE_PATH ${SOURCE_PATH}/base)
16 set(WINDOWS_SOURCE_PATH ${SOURCE_PATH}/windows)
17 set(HTMLPARSER_SOURCE_PATH ${SOURCE_PATH}/htmlparser)
18
19 set(COMMON_INCLUDES ${PROJECT_BINARY_DIR}/include)
20
21 set(HTMLPARSER_CONFIG ${HTMLPARSER_SOURCE_PATH}/htmlparser_fsm.config)
22 set(JSPASPER_CONFIG ${HTMLPARSER_SOURCE_PATH}/jsparser_fsm.config)
23 set(FSM_GENERATOR ${HTMLPARSER_SOURCE_PATH}/generate_fsm.py)
24
25 set(BASE_HEADERS
26 "${BASE_SOURCE_PATH}/arena.h"
27 "${BASE_SOURCE_PATH}/manual_constructor.h"
28 "${BASE_SOURCE_PATH}/mutex.h"
29 "${BASE_SOURCE_PATH}/small_map.h"
30 "${BASE_SOURCE_PATH}/thread_annotations.h"
31 "${BASE_SOURCE_PATH}/util.h"
32 "${BASE_SOURCE_PATH}/arena-inl.h"
33 )
34
35 set(
36 HTMLPARSER_HEADERS
37 "${HTMLPARSER_SOURCE_PATH}/htmlparser.h"
38 "${HTMLPARSER_SOURCE_PATH}/htmlparser_cpp.h"
39 "${HTMLPARSER_SOURCE_PATH}/jsparser.h"
40 "${HTMLPARSER_SOURCE_PATH}/statemachine.h"
41 )
42 set(SRC_FILES
43 "${SOURCE_PATH}/base/arena.cc"
44 "${SOURCE_PATH}/htmlparser/htmlparser.cc"
45 "${SOURCE_PATH}/htmlparser/jsparser.cc"
46 "${SOURCE_PATH}/htmlparser/statemachine.cc"
47 "${SOURCE_PATH}/per_expand_data.cc"
48 "${SOURCE_PATH}/template.cc"
49 "${SOURCE_PATH}/template_annotator.cc"
50 "${SOURCE_PATH}/template_cache.cc"
51 "${SOURCE_PATH}/template_dictionary.cc"
52 "${SOURCE_PATH}/template_modifiers.cc"
53 "${SOURCE_PATH}/template_namelist.cc"
54 "${SOURCE_PATH}/template_pathops.cc"
55 "${SOURCE_PATH}/template_string.cc"
56 "${SOURCE_PATH}/windows/port.cc"
57 )
58
59 file(COPY "${WINDOWS_SOURCE_PATH}/" DESTINATION ${COMMON_INCLUDES})
60 file(COPY "${WINDOWS_SOURCE_PATH}/config.h" DESTINATION ${COMMON_INCLUDES}/windows)
61 file(COPY "${WINDOWS_SOURCE_PATH}/port.h" DESTINATION ${COMMON_INCLUDES}/windows)
62 file(COPY ${HTMLPARSER_HEADERS} DESTINATION ${COMMON_INCLUDES}/htmlparser)
63 file(COPY ${BASE_HEADERS} DESTINATION ${COMMON_INCLUDES}/base)
64
65 execute_process(
66 COMMAND ${PYTHON_EXECUTABLE} ${FSM_GENERATOR} ${HTMLPARSER_CONFIG}
67 WORKING_DIRECTORY ${COMMON_INCLUDES}/htmlparser
68 OUTPUT_VARIABLE HTMLPARSER_CONFIG_H
69 )
70 execute_process(
71 COMMAND ${PYTHON_EXECUTABLE} ${FSM_GENERATOR} ${JSPASPER_CONFIG}
72 WORKING_DIRECTORY ${COMMON_INCLUDES}/htmlparser
73 OUTPUT_VARIABLE JSPASPER_CONFIG_H
74 )
75
76 file(WRITE "${COMMON_INCLUDES}/htmlparser/htmlparser_fsm.h" "${HTMLPARSER_CONFIG_H}")
77 file(WRITE "${COMMON_INCLUDES}/htmlparser/jsparser_fsm.h" "${JSPASPER_CONFIG_H}")
78
79 include_directories(${COMMON_INCLUDES})
80
81 add_library(libctemplate ${SRC_FILES})
82 if(NOT BUILD_SHARED_LIBS)
83 # Note: CTEMPLATE_DLL_DECL should be empty to build static file
84 target_compile_definitions(libctemplate PRIVATE -DCTEMPLATE_DLL_DECL=)
85 endif()
86
87 install(
88 TARGETS libctemplate
89 RUNTIME DESTINATION bin
90 LIBRARY DESTINATION lib
91 ARCHIVE DESTINATION lib
92 )
93
94 if(NOT DISABLE_INSTALL_HEADERS)
95 install(DIRECTORY "${COMMON_INCLUDES}/ctemplate" DESTINATION include FILES_MATCHING PATTERN "*.h")
96 endif()