mirror of
https://github.com/Samsung/escargot.git
synced 2026-06-22 10:01:50 +00:00
351 lines
15 KiB
CMake
351 lines
15 KiB
CMake
CMAKE_MINIMUM_REQUIRED (VERSION 2.8.12 FATAL_ERROR)
|
|
|
|
SET (ESCARGOT_INCDIRS
|
|
${ESCARGOT_INCDIRS}
|
|
${ESCARGOT_ROOT}/src/
|
|
${ESCARGOT_THIRD_PARTY_ROOT}
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/checked_arithmetic/
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/double_conversion/
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/lz4/
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/rapidjson/include/
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/yarr/
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/runtime_icu_binder/
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/robin_map/include/
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/xsum/
|
|
)
|
|
|
|
IF (${ESCARGOT_MODE} STREQUAL "debug")
|
|
SET (ESCARGOT_CXXFLAGS ${ESCARGOT_CXXFLAGS_DEBUG} ${ESCARGOT_CXXFLAGS})
|
|
SET (ESCARGOT_LDFLAGS ${ESCARGOT_LDFLAGS_DEBUG} ${ESCARGOT_LDFLAGS})
|
|
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} ${ESCARGOT_DEFINITIONS_DEBUG})
|
|
ELSEIF (${ESCARGOT_MODE} STREQUAL "release")
|
|
SET (ESCARGOT_CXXFLAGS ${ESCARGOT_CXXFLAGS_RELEASE} ${ESCARGOT_CXXFLAGS})
|
|
SET (ESCARGOT_LDFLAGS ${ESCARGOT_LDFLAGS_RELEASE} ${ESCARGOT_LDFLAGS})
|
|
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} ${ESCARGOT_DEFINITIONS_RELEASE})
|
|
ENDIF()
|
|
|
|
IF (${ESCARGOT_OUTPUT} STREQUAL "shell")
|
|
SET (ESCARGOT_CXXFLAGS ${ESCARGOT_CXXFLAGS} ${ESCARGOT_CXXFLAGS_SHELL})
|
|
SET (ESCARGOT_LDFLAGS ${ESCARGOT_LDFLAGS} ${ESCARGOT_LDFLAGS_SHELL})
|
|
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} ${ESCARGOT_DEFINITIONS_SHELL})
|
|
ELSEIF (${ESCARGOT_OUTPUT} STREQUAL "shared_lib")
|
|
SET (ESCARGOT_CXXFLAGS ${ESCARGOT_CXXFLAGS} ${ESCARGOT_CXXFLAGS_SHAREDLIB})
|
|
SET (ESCARGOT_LDFLAGS ${ESCARGOT_LDFLAGS} ${ESCARGOT_LDFLAGS_SHAREDLIB})
|
|
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} ${ESCARGOT_DEFINITIONS_SHAREDLIB})
|
|
ELSEIF (${ESCARGOT_OUTPUT} STREQUAL "static_lib")
|
|
SET (ESCARGOT_CXXFLAGS ${ESCARGOT_CXXFLAGS} ${ESCARGOT_CXXFLAGS_STATICLIB})
|
|
SET (ESCARGOT_LDFLAGS ${ESCARGOT_LDFLAGS} ${ESCARGOT_LDFLAGS_STATICLIB})
|
|
SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} ${ESCARGOT_DEFINITIONS_STATICLIB})
|
|
ENDIF()
|
|
|
|
IF (ESCARGOT_ASAN)
|
|
SET (ESCARGOT_CXXFLAGS ${ESCARGOT_CXXFLAGS} -fsanitize=address)
|
|
SET (ESCARGOT_LDFLAGS ${ESCARGOT_LDFLAGS} -lasan)
|
|
ENDIF()
|
|
|
|
# Code coverage test with gcovr and Codecov
|
|
IF (ESCARGOT_COVERAGE)
|
|
SET (ESCARGOT_CXXFLAGS ${ESCARGOT_CXXFLAGS} -O0 -fprofile-arcs -ftest-coverage)
|
|
SET (ESCARGOT_LDFLAGS ${ESCARGOT_LDFLAGS} --coverage)
|
|
SET (ESCARGOT_LIBRARIES ${ESCARGOT_LIBRARIES} gcov)
|
|
ENDIF()
|
|
|
|
# SOURCE FILES
|
|
FILE (GLOB_RECURSE ESCARGOT_SRC ${ESCARGOT_ROOT}/src/*.cpp)
|
|
FILE (GLOB YARR_SRC ${ESCARGOT_THIRD_PARTY_ROOT}/yarr/*.cpp)
|
|
FILE (GLOB DOUBLE_CONVERSION_SRC ${ESCARGOT_THIRD_PARTY_ROOT}/double_conversion/*.cc)
|
|
FILE (GLOB LZ4_SRC ${ESCARGOT_THIRD_PARTY_ROOT}/lz4/*.cpp)
|
|
FILE (GLOB XSUM_SRC ${ESCARGOT_THIRD_PARTY_ROOT}/xsum/*.cpp)
|
|
|
|
IF (NOT ${ESCARGOT_OUTPUT} MATCHES "shell")
|
|
LIST (REMOVE_ITEM ESCARGOT_SRC ${ESCARGOT_ROOT}/src/shell/Shell.cpp)
|
|
ENDIF()
|
|
|
|
IF (${ESCARGOT_OUTPUT} STREQUAL "cctest")
|
|
SET (BUILD_GMOCK OFF)
|
|
SET (INSTALL_GTEST OFF)
|
|
ADD_COMPILE_OPTIONS(${ESCARGOT_THIRDPARTY_CFLAGS})
|
|
ADD_SUBDIRECTORY (third_party/googletest)
|
|
FILE (GLOB CCTEST_SRC ${ESCARGOT_ROOT}/test/cctest/testapi.cpp)
|
|
ENDIF()
|
|
|
|
SET (ESCARGOT_SRC_LIST
|
|
${ESCARGOT_SRC}
|
|
${YARR_SRC}
|
|
${DOUBLE_CONVERSION_SRC}
|
|
${LZ4_SRC}
|
|
${XSUM_SRC}
|
|
${CCTEST_SRC}
|
|
)
|
|
|
|
#######################################################
|
|
# GCUTIL
|
|
#######################################################
|
|
IF (${ESCARGOT_OUTPUT} STREQUAL "shared_lib")
|
|
SET (ESCARGOT_THIRDPARTY_CFLAGS ${ESCARGOT_THIRDPARTY_CFLAGS} ${ESCARGOT_CXXFLAGS_SHAREDLIB})
|
|
ELSEIF (${ESCARGOT_OUTPUT} STREQUAL "static_lib")
|
|
SET (ESCARGOT_THIRDPARTY_CFLAGS ${ESCARGOT_THIRDPARTY_CFLAGS} ${ESCARGOT_CXXFLAGS_STATICLIB})
|
|
ENDIF()
|
|
|
|
SET (GCUTIL_CFLAGS ${ESCARGOT_THIRDPARTY_CFLAGS} ${PROFILER_FLAGS})
|
|
SET (GCUTIL_CFLAGS_FROM_EXTERNAL ${ESCARGOT_CFLAGS_FROM_EXTERNAL})
|
|
|
|
IF (ESCARGOT_SMALL_CONFIG)
|
|
SET (GCUTIL_CFLAGS ${GCUTIL_CFLAGS} -DSMALL_CONFIG)
|
|
ENDIF()
|
|
IF (ESCARGOT_THREADING)
|
|
SET (GCUTIL_ENABLE_THREADING ON)
|
|
ENDIF()
|
|
IF (ESCARGOT_TLS_ACCESS_BY_ADDRESS)
|
|
SET (GCUTIL_ENABLE_TLS_ACCESS_BY_ADDRESS ON)
|
|
ENDIF()
|
|
IF (ESCARGOT_TLS_ACCESS_BY_PTHREAD_KEY)
|
|
SET (GCUTIL_ENABLE_TLS_ACCESS_BY_PTHREAD_KEY ON)
|
|
ENDIF()
|
|
|
|
SET (GCUTIL_MODE ${ESCARGOT_MODE})
|
|
|
|
ADD_SUBDIRECTORY (third_party/GCutil)
|
|
SET (ESCARGOT_LIBRARIES ${ESCARGOT_LIBRARIES} gc-lib)
|
|
|
|
#######################################################
|
|
# SIMDUTF
|
|
#######################################################
|
|
ADD_LIBRARY (libsimdutf STATIC
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/simdutf/simdutf.cpp)
|
|
TARGET_INCLUDE_DIRECTORIES (libsimdutf PUBLIC ${ESCARGOT_THIRD_PARTY_ROOT}/simdutf)
|
|
SET (LIBSIMDUTF_CXXFLAGS
|
|
${ESCARGOT_CXXFLAGS}
|
|
${ESCARGOT_THIRDPARTY_CFLAGS}
|
|
${CXXFLAGS_FROM_ENV}
|
|
# disable simd optimization
|
|
-DSIMDUTF_IMPLEMENTATION_ARM64=0
|
|
-DSIMDUTF_IMPLEMENTATION_ICELAKE=0
|
|
-DSIMDUTF_IMPLEMENTATION_HASWELL=0
|
|
-DSIMDUTF_IMPLEMENTATION_WESTMERE=0
|
|
-DSIMDUTF_IMPLEMENTATION_PPC64=0
|
|
-DSIMDUTF_IMPLEMENTATION_RVV=0
|
|
-DSIMDUTF_IMPLEMENTATION_LSX=0
|
|
-DSIMDUTF_IMPLEMENTATION_FALLBACK=1
|
|
# ${ESCARGOT_CXXFLAGS_FROM_EXTERNAL} already included in ${CXXFLAGS_FROM_ENV}
|
|
)
|
|
|
|
IF (${ESCARGOT_MODE} STREQUAL "debug")
|
|
SET (LIBSIMDUTF_CXXFLAGS ${ESCARGOT_CXXFLAGS_DEBUG} ${LIBSIMDUTF_CXXFLAGS})
|
|
ELSEIF (${ESCARGOT_MODE} STREQUAL "release")
|
|
SET (LIBSIMDUTF_CXXFLAGS ${ESCARGOT_CXXFLAGS_RELEASE} ${LIBSIMDUTF_CXXFLAGS})
|
|
ENDIF()
|
|
|
|
TARGET_COMPILE_OPTIONS (libsimdutf PRIVATE ${LIBSIMDUTF_CXXFLAGS})
|
|
|
|
SET (ESCARGOT_LIBRARIES ${ESCARGOT_LIBRARIES} libsimdutf)
|
|
|
|
#######################################################
|
|
# LIBBF
|
|
#######################################################
|
|
ADD_LIBRARY (libbf STATIC
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/libbf/libbf.c
|
|
${ESCARGOT_THIRD_PARTY_ROOT}/libbf/cutils.c)
|
|
TARGET_INCLUDE_DIRECTORIES (libbf PUBLIC ${ESCARGOT_THIRD_PARTY_ROOT}/libbf)
|
|
SET (LIBBF_CFLAGS
|
|
${ESCARGOT_THIRDPARTY_CFLAGS}
|
|
${CFLAGS_FROM_ENV}
|
|
# ${ESCARGOT_CFLAGS_FROM_EXTERNAL} already included in ${CFLAGS_FROM_ENV}
|
|
)
|
|
|
|
IF (${ESCARGOT_MODE} STREQUAL "debug")
|
|
SET (LIBBF_CFLAGS ${ESCARGOT_CXXFLAGS_DEBUG} ${LIBBF_CFLAGS})
|
|
ELSEIF (${ESCARGOT_MODE} STREQUAL "release")
|
|
SET (LIBBF_CFLAGS ${ESCARGOT_CXXFLAGS_RELEASE} ${LIBBF_CFLAGS})
|
|
ENDIF()
|
|
|
|
TARGET_COMPILE_OPTIONS (libbf PRIVATE ${LIBBF_CFLAGS})
|
|
|
|
SET (ESCARGOT_LIBRARIES ${ESCARGOT_LIBRARIES} libbf)
|
|
|
|
#######################################################
|
|
# RUNTIME ICU BINDER
|
|
#######################################################
|
|
SET (RIB_CFLAGS ${ESCARGOT_THIRDPARTY_CFLAGS})
|
|
SET (RIB_MODE ${ESCARGOT_MODE})
|
|
SET (RIB_CFLAGS_FROM_EXTERNAL ${ESCARGOT_CFLAGS_FROM_EXTERNAL})
|
|
ADD_SUBDIRECTORY (third_party/runtime_icu_binder)
|
|
|
|
IF (ESCARGOT_LIBICU_SUPPORT_WITH_DLOPEN)
|
|
SET (ESCARGOT_LIBRARIES ${ESCARGOT_LIBRARIES} runtime-icu-binder-static)
|
|
ENDIF()
|
|
|
|
#######################################################
|
|
# WebAssembly (walrus)
|
|
#######################################################
|
|
IF (ESCARGOT_WASM)
|
|
SET (WALRUS_CXXFLAGS
|
|
${ESCARGOT_THIRDPARTY_CFLAGS}
|
|
-g3)
|
|
SET (WASM_ARCH ${ESCARGOT_ARCH})
|
|
SET (WALRUS_HOST ${ESCARGOT_HOST})
|
|
SET (WALRUS_ARCH ${ESCARGOT_ARCH})
|
|
SET (WALRUS_MODE ${ESCARGOT_MODE})
|
|
SET (WALRUS_OUTPUT "shared_lib")
|
|
SET (WALRUS_WASI OFF) # WASI should be OFF
|
|
SET (WALRUS_EXTENDED_FEATURES ON) # enable extended features
|
|
|
|
IF (${ESCARGOT_MODE} STREQUAL "release")
|
|
SET (WALRUS_CXXFLAGS ${WALRUS_CXXFLAGS} ${ESCARGOT_CXXFLAGS_RELEASE})
|
|
ENDIF()
|
|
SET (WALRUS_CXXFLAGS_FROM_EXTERNAL ${ESCARGOT_CXXFLAGS_FROM_EXTERNAL})
|
|
SET (WALRUS_LDFLAGS_FROM_EXTERNAL ${ESCARGOT_LDFLAGS_FROM_EXTERNAL})
|
|
|
|
ADD_SUBDIRECTORY (third_party/walrus)
|
|
SET (ESCARGOT_LIBRARIES ${ESCARGOT_LIBRARIES} walrus)
|
|
ENDIF()
|
|
|
|
MAKE_DIRECTORY(${CMAKE_BINARY_DIR}/escargot_generated/tmp)
|
|
|
|
# Generate UnicodeIdentifierTables.cpp
|
|
MAKE_DIRECTORY(${CMAKE_BINARY_DIR}/escargot_generated/parser)
|
|
EXECUTE_PROCESS(
|
|
COMMAND python3 ${PROJECT_SOURCE_DIR}/tools/code_generators/gen_unicode.py --derived_core_properties ${PROJECT_SOURCE_DIR}/tools/unicode_data/DerivedCoreProperties.txt --dst ${CMAKE_BINARY_DIR}/escargot_generated/tmp/UnicodeIdentifierTables.cpp
|
|
RESULT_VARIABLE GENERATE_RESULT
|
|
OUTPUT_VARIABLE GENERATE_OUTPUT
|
|
ERROR_VARIABLE GENERATE_ERROR
|
|
)
|
|
|
|
IF (NOT GENERATE_RESULT EQUAL 0)
|
|
MESSAGE(STATUS "Output:\n${GENERATE_OUTPUT}")
|
|
MESSAGE(FATAL_ERROR "${GENERATE_ERROR}")
|
|
ENDIF()
|
|
|
|
EXECUTE_PROCESS (COMMAND ${CMAKE_COMMAND} -E compare_files ${CMAKE_BINARY_DIR}/escargot_generated/tmp/UnicodeIdentifierTables.cpp ${CMAKE_BINARY_DIR}/escargot_generated/parser/UnicodeIdentifierTables.cpp
|
|
RESULT_VARIABLE COMPARE_RESULT
|
|
OUTPUT_VARIABLE COMPARE_OUTPUT
|
|
ERROR_VARIABLE COMPARE_ERROR
|
|
)
|
|
|
|
IF (NOT ${COMPARE_RESULT} EQUAL 0)
|
|
FILE (COPY ${CMAKE_BINARY_DIR}/escargot_generated/tmp/UnicodeIdentifierTables.cpp DESTINATION ${CMAKE_BINARY_DIR}/escargot_generated/parser/)
|
|
ENDIF()
|
|
|
|
SET (ESCARGOT_SRC_LIST ${ESCARGOT_SRC_LIST} ${CMAKE_BINARY_DIR}/escargot_generated/parser/UnicodeIdentifierTables.cpp)
|
|
|
|
# Generate YarrCanonicalizeUnicode.cpp
|
|
MAKE_DIRECTORY(${CMAKE_BINARY_DIR}/escargot_generated/yarr)
|
|
EXECUTE_PROCESS(
|
|
COMMAND python3 ${PROJECT_SOURCE_DIR}/tools/code_generators/generateYarrCanonicalizeUnicode.py ${PROJECT_SOURCE_DIR}/tools/unicode_data/CaseFolding.txt ${CMAKE_BINARY_DIR}/escargot_generated/tmp/YarrCanonicalizeUnicode.cpp
|
|
RESULT_VARIABLE GENERATE_RESULT
|
|
OUTPUT_VARIABLE GENERATE_OUTPUT
|
|
ERROR_VARIABLE GENERATE_ERROR
|
|
)
|
|
|
|
IF (NOT GENERATE_RESULT EQUAL 0)
|
|
MESSAGE(STATUS "Output:\n${GENERATE_OUTPUT}")
|
|
MESSAGE(FATAL_ERROR "${GENERATE_ERROR}")
|
|
ENDIF()
|
|
|
|
FILE(READ ${CMAKE_BINARY_DIR}/escargot_generated/tmp/YarrCanonicalizeUnicode.cpp UNICODE_FILE_CONTENTS)
|
|
STRING(REPLACE "config.h" "WTFBridge.h" UNICODE_FILE_CONTENTS "${UNICODE_FILE_CONTENTS}")
|
|
STRING(REPLACE "constexpr const" "const" UNICODE_FILE_CONTENTS "${UNICODE_FILE_CONTENTS}")
|
|
STRING(REPLACE "constexpr size_t UNICODE" "const size_t UNICODE" UNICODE_FILE_CONTENTS "${UNICODE_FILE_CONTENTS}")
|
|
STRING(REPLACE "constexpr CanonicalizationRange unicodeRangeInfo" "const CanonicalizationRange unicodeRangeInfo" UNICODE_FILE_CONTENTS "${UNICODE_FILE_CONTENTS}")
|
|
FILE(WRITE ${CMAKE_BINARY_DIR}/escargot_generated/tmp/YarrCanonicalizeUnicode.cpp "${UNICODE_FILE_CONTENTS}")
|
|
|
|
EXECUTE_PROCESS (COMMAND ${CMAKE_COMMAND} -E compare_files ${CMAKE_BINARY_DIR}/escargot_generated/tmp/YarrCanonicalizeUnicode.cpp ${CMAKE_BINARY_DIR}/escargot_generated/yarr/YarrCanonicalizeUnicode.cpp
|
|
RESULT_VARIABLE COMPARE_RESULT
|
|
OUTPUT_VARIABLE COMPARE_OUTPUT
|
|
ERROR_VARIABLE COMPARE_ERROR
|
|
)
|
|
|
|
IF (NOT ${COMPARE_RESULT} EQUAL 0)
|
|
FILE (COPY ${CMAKE_BINARY_DIR}/escargot_generated/tmp/YarrCanonicalizeUnicode.cpp DESTINATION ${CMAKE_BINARY_DIR}/escargot_generated/yarr/)
|
|
ENDIF()
|
|
|
|
SET(ESCARGOT_SRC_LIST ${ESCARGOT_SRC_LIST} ${CMAKE_BINARY_DIR}/escargot_generated/yarr/YarrCanonicalizeUnicode.cpp)
|
|
|
|
# yarr/UnicodePatternTables.h
|
|
EXECUTE_PROCESS(
|
|
COMMAND python3 ${PROJECT_SOURCE_DIR}/tools/code_generators/generateYarrUnicodePropertyTables.py ${PROJECT_SOURCE_DIR}/tools/unicode_data ${CMAKE_BINARY_DIR}/escargot_generated/tmp/UnicodePatternTables.h
|
|
RESULT_VARIABLE GENERATE_RESULT
|
|
OUTPUT_VARIABLE GENERATE_OUTPUT
|
|
ERROR_VARIABLE GENERATE_ERROR
|
|
)
|
|
|
|
IF (NOT GENERATE_RESULT EQUAL 0)
|
|
MESSAGE(STATUS "Output:\n${GENERATE_OUTPUT}")
|
|
MESSAGE(FATAL_ERROR "${GENERATE_ERROR}")
|
|
ENDIF()
|
|
|
|
EXECUTE_PROCESS (COMMAND ${CMAKE_COMMAND} -E compare_files ${CMAKE_BINARY_DIR}/escargot_generated/tmp/UnicodePatternTables.h ${CMAKE_BINARY_DIR}/escargot_generated/yarr/UnicodePatternTables.h
|
|
RESULT_VARIABLE COMPARE_RESULT
|
|
OUTPUT_VARIABLE COMPARE_OUTPUT
|
|
ERROR_VARIABLE COMPARE_ERROR
|
|
)
|
|
|
|
IF (NOT ${COMPARE_RESULT} EQUAL 0)
|
|
FILE (COPY ${CMAKE_BINARY_DIR}/escargot_generated/tmp/UnicodePatternTables.h DESTINATION ${CMAKE_BINARY_DIR}/escargot_generated/yarr/)
|
|
ENDIF()
|
|
|
|
SET (ESCARGOT_INCDIRS
|
|
${ESCARGOT_INCDIRS}
|
|
${CMAKE_BINARY_DIR}/escargot_generated/yarr/
|
|
)
|
|
|
|
# YarrCanonicalizeUCS2.cpp
|
|
EXECUTE_PROCESS(
|
|
COMMAND python3 ${PROJECT_SOURCE_DIR}/tools/code_generators/generateYarrCanonicalizeUCS2.py ${PROJECT_SOURCE_DIR}/tools/unicode_data/UnicodeData.txt ${CMAKE_BINARY_DIR}/escargot_generated/tmp/YarrCanonicalizeUCS2.cpp
|
|
RESULT_VARIABLE GENERATE_RESULT
|
|
OUTPUT_VARIABLE GENERATE_OUTPUT
|
|
ERROR_VARIABLE GENERATE_ERROR
|
|
)
|
|
|
|
IF (NOT GENERATE_RESULT EQUAL 0)
|
|
MESSAGE(STATUS "Output:\n${GENERATE_OUTPUT}")
|
|
MESSAGE(FATAL_ERROR "${GENERATE_ERROR}")
|
|
ENDIF()
|
|
|
|
EXECUTE_PROCESS (COMMAND ${CMAKE_COMMAND} -E compare_files ${CMAKE_BINARY_DIR}/escargot_generated/tmp/YarrCanonicalizeUCS2.cpp ${CMAKE_BINARY_DIR}/escargot_generated/yarr/YarrCanonicalizeUCS2.cpp
|
|
RESULT_VARIABLE COMPARE_RESULT
|
|
OUTPUT_VARIABLE COMPARE_OUTPUT
|
|
ERROR_VARIABLE COMPARE_ERROR
|
|
)
|
|
|
|
IF (NOT ${COMPARE_RESULT} EQUAL 0)
|
|
FILE (COPY ${CMAKE_BINARY_DIR}/escargot_generated/tmp/YarrCanonicalizeUCS2.cpp DESTINATION ${CMAKE_BINARY_DIR}/escargot_generated/yarr/)
|
|
ENDIF()
|
|
|
|
SET(ESCARGOT_SRC_LIST ${ESCARGOT_SRC_LIST} ${CMAKE_BINARY_DIR}/escargot_generated/yarr/YarrCanonicalizeUCS2.cpp)
|
|
|
|
# BUILD
|
|
IF (${ESCARGOT_OUTPUT} STREQUAL "shell")
|
|
ADD_EXECUTABLE (${ESCARGOT_TARGET} ${ESCARGOT_SRC_LIST})
|
|
|
|
TARGET_LINK_LIBRARIES (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_LIBRARIES} ${ESCARGOT_LDFLAGS} ${LDFLAGS_FROM_ENV})
|
|
TARGET_INCLUDE_DIRECTORIES (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_INCDIRS})
|
|
TARGET_COMPILE_DEFINITIONS (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_DEFINITIONS})
|
|
TARGET_COMPILE_OPTIONS (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_CXXFLAGS} ${CXXFLAGS_FROM_ENV} ${PROFILER_FLAGS})
|
|
|
|
ELSEIF (${ESCARGOT_OUTPUT} STREQUAL "shared_lib")
|
|
ADD_LIBRARY (${ESCARGOT_TARGET} SHARED ${ESCARGOT_SRC_LIST})
|
|
|
|
TARGET_LINK_LIBRARIES (${ESCARGOT_TARGET} PUBLIC ${ESCARGOT_LIBRARIES} ${ESCARGOT_LDFLAGS} ${LDFLAGS_FROM_ENV})
|
|
TARGET_INCLUDE_DIRECTORIES (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_INCDIRS})
|
|
TARGET_INCLUDE_DIRECTORIES (${ESCARGOT_TARGET} PUBLIC ${ESCARGOT_ROOT}/src/api)
|
|
TARGET_COMPILE_DEFINITIONS (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_DEFINITIONS})
|
|
TARGET_COMPILE_OPTIONS (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_CXXFLAGS} ${CXXFLAGS_FROM_ENV})
|
|
|
|
ELSEIF (${ESCARGOT_OUTPUT} STREQUAL "static_lib")
|
|
ADD_LIBRARY (${ESCARGOT_TARGET} STATIC ${ESCARGOT_SRC_LIST})
|
|
|
|
TARGET_LINK_LIBRARIES (${ESCARGOT_TARGET} PUBLIC ${ESCARGOT_LIBRARIES} ${ESCARGOT_LDFLAGS} ${LDFLAGS_FROM_ENV})
|
|
TARGET_INCLUDE_DIRECTORIES (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_INCDIRS})
|
|
TARGET_INCLUDE_DIRECTORIES (${ESCARGOT_TARGET} PUBLIC ${ESCARGOT_ROOT}/src/api)
|
|
TARGET_COMPILE_DEFINITIONS (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_DEFINITIONS})
|
|
TARGET_COMPILE_OPTIONS (${ESCARGOT_TARGET} PRIVATE ${ESCARGOT_CXXFLAGS} ${CXXFLAGS_FROM_ENV})
|
|
|
|
ELSEIF (${ESCARGOT_OUTPUT} STREQUAL "cctest")
|
|
ADD_EXECUTABLE (${ESCARGOT_CCTEST_TARGET} ${ESCARGOT_SRC_LIST})
|
|
|
|
TARGET_LINK_LIBRARIES (${ESCARGOT_CCTEST_TARGET} PRIVATE ${ESCARGOT_LIBRARIES} ${ESCARGOT_LDFLAGS} ${LDFLAGS_FROM_ENV} gtest)
|
|
TARGET_INCLUDE_DIRECTORIES (${ESCARGOT_CCTEST_TARGET} PRIVATE ${ESCARGOT_INCDIRS})
|
|
TARGET_COMPILE_DEFINITIONS (${ESCARGOT_CCTEST_TARGET} PRIVATE ${ESCARGOT_DEFINITIONS})
|
|
TARGET_COMPILE_OPTIONS (${ESCARGOT_CCTEST_TARGET} PRIVATE ${ESCARGOT_CXXFLAGS} ${CXXFLAGS_FROM_ENV})
|
|
ENDIF()
|