mirror of
https://github.com/bkryza/clang-uml.git
synced 2025-04-19 17:31:03 +08:00
Added cmake-format Makefile target
This commit is contained in:
parent
26c8e10532
commit
e6c569318a
9
.cmake-format
Normal file
9
.cmake-format
Normal file
@ -0,0 +1,9 @@
|
||||
line_width: 80
|
||||
tab_size: 4
|
||||
enable_sort: False
|
||||
dangle_parens: False
|
||||
dangle_align: 'prefix'
|
||||
command_case: 'canonical'
|
||||
keyword_case: 'upper'
|
||||
line_ending: 'auto'
|
||||
literal_comment_pattern: '.*'
|
@ -35,8 +35,8 @@ set(CLANG_UML_INSTALL_BIN_DIR ${PROJECT_SOURCE_DIR}/bin)
|
||||
set(UML_HEADERS_DIR ${PROJECT_SOURCE_DIR}/src/uml)
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
if(APPLE)
|
||||
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm"
|
||||
OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64")
|
||||
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm" OR "${CMAKE_SYSTEM_PROCESSOR}"
|
||||
STREQUAL "arm64")
|
||||
set(HOMEBREW_PREFIX "/opt/homebrew")
|
||||
else()
|
||||
set(HOMEBREW_PREFIX "/usr/local")
|
||||
@ -77,15 +77,17 @@ endif(CODE_COVERAGE)
|
||||
option(ADDRESS_SANITIZER "" OFF)
|
||||
if(ADDRESS_SANITIZER)
|
||||
set(CMAKE_CXX_FLAGS
|
||||
"${CMAKE_CXX_FLAGS} \
|
||||
"${CMAKE_CXX_FLAGS} \
|
||||
-fno-omit-frame-pointer \
|
||||
-fsanitize=address \
|
||||
-fsanitize-blacklist=${CMAKE_CURRENT_SOURCE_DIR}/.sanitize-blacklist")
|
||||
-fsanitize-blacklist=${CMAKE_CURRENT_SOURCE_DIR}/.sanitize-blacklist"
|
||||
)
|
||||
set(CMAKE_EXE_LINKER_FLAGS
|
||||
"${CMAKE_EXE_LINKER_FLAGS} \
|
||||
"${CMAKE_EXE_LINKER_FLAGS} \
|
||||
-fno-omit-frame-pointer \
|
||||
-fsanitize=address \
|
||||
-fsanitize-blacklist=${CMAKE_CURRENT_SOURCE_DIR}/.sanitize-blacklist")
|
||||
-fsanitize-blacklist=${CMAKE_CURRENT_SOURCE_DIR}/.sanitize-blacklist"
|
||||
)
|
||||
endif(ADDRESS_SANITIZER)
|
||||
|
||||
#
|
||||
@ -94,31 +96,39 @@ endif(ADDRESS_SANITIZER)
|
||||
include(LLVMSetup)
|
||||
|
||||
#
|
||||
# Setup custom compile options depending on various compiler
|
||||
# and environment quirks
|
||||
# Setup custom compile options depending on various compiler and environment
|
||||
# quirks
|
||||
#
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0")
|
||||
# Workaround over Wdangling-reference false positives in libfmt
|
||||
set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS} -Wno-dangling-reference)
|
||||
set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS}
|
||||
-Wno-dangling-reference)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(LLVM_VERSION_MAJOR GREATER_EQUAL 17)
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS} -Wno-class-memaccess)
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS}
|
||||
-Wno-class-memaccess)
|
||||
endif()
|
||||
endif()
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CUSTOM_COMPILE_OPTIONS
|
||||
${CUSTOM_COMPILE_OPTIONS} -Wno-unused-private-field)
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS}
|
||||
-Wno-unused-private-field)
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19)
|
||||
set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS} -Wno-missing-template-arg-list-after-template-kw)
|
||||
set(CUSTOM_COMPILE_OPTIONS
|
||||
${CUSTOM_COMPILE_OPTIONS}
|
||||
-Wno-missing-template-arg-list-after-template-kw)
|
||||
endif()
|
||||
if(APPLE)
|
||||
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm" OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64")
|
||||
# Use LLVM bundled unwind on Apple Silicon to fix segfaults on exception throw
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${HOMEBREW_PREFIX}/opt/llvm/lib/unwind -lunwind")
|
||||
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm"
|
||||
OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64")
|
||||
# Use LLVM bundled unwind on Apple Silicon to fix segfaults on
|
||||
# exception throw
|
||||
set(CMAKE_EXE_LINKER_FLAGS
|
||||
"${CMAKE_EXE_LINKER_FLAGS} -L${HOMEBREW_PREFIX}/opt/llvm/lib/unwind -lunwind"
|
||||
)
|
||||
endif()
|
||||
endif(APPLE)
|
||||
endif()
|
||||
@ -154,7 +164,7 @@ else()
|
||||
set(CLANG_UML_ENABLE_BACKTRACE_DEFAULT OFF)
|
||||
endif()
|
||||
option(CLANG_UML_ENABLE_BACKTRACE "Enable backtrace on segfault"
|
||||
${CLANG_UML_ENABLE_BACKTRACE_DEFAULT})
|
||||
${CLANG_UML_ENABLE_BACKTRACE_DEFAULT})
|
||||
|
||||
if(LINUX AND CLANG_UML_ENABLE_BACKTRACE)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
@ -208,7 +218,7 @@ endif(ENABLE_CUDA_TEST_CASES)
|
||||
if(ENABLE_OBJECTIVE_C_TEST_CASES)
|
||||
enable_language(OBJC)
|
||||
if(UNIX AND NOT APPLE)
|
||||
find_package(GNUstep REQUIRED)
|
||||
find_package(GNUstep REQUIRED)
|
||||
endif()
|
||||
endif(ENABLE_OBJECTIVE_C_TEST_CASES)
|
||||
|
||||
|
9
Makefile
9
Makefile
@ -220,3 +220,12 @@ fedora/%:
|
||||
mkdir -p packaging/_BUILD/fedora/$*
|
||||
git archive --format=tar.gz --prefix=clang-uml-$(PKG_VERSION)/ v$(GIT_VERSION) >packaging/_BUILD/fedora/$*/clang-uml-$(PKG_VERSION).tar.gz
|
||||
docker run --cpuset-cpus=0-7 -v $(PWD):$(PWD) fedora:$* sh -c "dnf install -y make git && cd ${PWD} && make OS=fedora DIST=$* VERSION=${PKG_VERSION} COMMIT=${GIT_COMMIT} BRANCH=${GIT_BRANCH} -C packaging rpm"
|
||||
|
||||
.PHONY: venv
|
||||
venv:
|
||||
test -d venv || virtualenv -p /usr/bin/python3 venv;. venv/bin/activate; pip install -Ur dev-requirements.txt
|
||||
|
||||
|
||||
.PHONY: cmake-format
|
||||
cmake-format:
|
||||
cmake-format -i CMakeLists.txt src/CMakeLists.txt tests/CMakeLists.txt
|
5
dev-requirements.txt
Normal file
5
dev-requirements.txt
Normal file
@ -0,0 +1,5 @@
|
||||
cmakelang
|
||||
jinja2
|
||||
lxml
|
||||
nicegui
|
||||
pyyaml
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/src/version)
|
||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/version.h.in
|
||||
${PROJECT_BINARY_DIR}/src/version/version.h)
|
||||
${PROJECT_BINARY_DIR}/src/version/version.h)
|
||||
|
||||
#
|
||||
# Generate source list dynamically
|
||||
@ -23,16 +23,26 @@ else(MSVC)
|
||||
endif(MSVC)
|
||||
|
||||
target_compile_features(clang-umllib INTERFACE cxx_std_17)
|
||||
target_compile_options(clang-umllib PRIVATE
|
||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:
|
||||
-Werror -Wall -Wextra -Wno-unused-parameter
|
||||
-Wno-deprecated-declarations ${CUSTOM_COMPILE_OPTIONS}>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:/MP /MD /W1 /bigobj /wd4291 /wd4624 /wd4244>)
|
||||
target_compile_definitions(clang-umllib PRIVATE
|
||||
$<$<CXX_COMPILER_ID:MSVC>:
|
||||
-DLLVM_FORCE_USE_OLD_TOOLCHAIN
|
||||
-DTERMCOLOR_USE_WINDOWS_API=1
|
||||
-DTERMCOLOR_TARGET_WINDOWS=1>)
|
||||
target_compile_options(
|
||||
clang-umllib
|
||||
PRIVATE $<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:
|
||||
-Werror
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wno-unused-parameter
|
||||
-Wno-deprecated-declarations
|
||||
${CUSTOM_COMPILE_OPTIONS}>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:/MP
|
||||
/MD
|
||||
/W1
|
||||
/bigobj
|
||||
/wd4291
|
||||
/wd4624
|
||||
/wd4244>)
|
||||
target_compile_definitions(
|
||||
clang-umllib
|
||||
PRIVATE $<$<CXX_COMPILER_ID:MSVC>: -DLLVM_FORCE_USE_OLD_TOOLCHAIN
|
||||
-DTERMCOLOR_USE_WINDOWS_API=1 -DTERMCOLOR_TARGET_WINDOWS=1>)
|
||||
|
||||
#
|
||||
# Define the target executable clang-uml
|
||||
@ -40,20 +50,31 @@ target_compile_definitions(clang-umllib PRIVATE
|
||||
add_executable(clang-uml ${MAIN_SOURCE_FILE})
|
||||
|
||||
target_compile_features(clang-uml PUBLIC cxx_std_17)
|
||||
target_compile_options(clang-uml PRIVATE
|
||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:
|
||||
-Werror -Wall -Wextra -Wno-unused-parameter
|
||||
-Wno-deprecated-declarations ${CUSTOM_COMPILE_OPTIONS}>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:/MP /MD /W1 /bigobj /wd4291 /wd4624 /wd4244>)
|
||||
target_compile_definitions(clang-uml PRIVATE
|
||||
${ENABLE_BACKWARD_CPP})
|
||||
target_link_libraries(clang-uml
|
||||
${YAML_CPP_LIBRARIES}
|
||||
${LIBTOOLING_LIBS}
|
||||
${MSVC_LIBRARIES}
|
||||
${BACKWARD_CPP_LIBRARIES}
|
||||
clang-umllib
|
||||
Threads::Threads)
|
||||
target_compile_options(
|
||||
clang-uml
|
||||
PRIVATE $<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:
|
||||
-Werror
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wno-unused-parameter
|
||||
-Wno-deprecated-declarations
|
||||
${CUSTOM_COMPILE_OPTIONS}>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:/MP
|
||||
/MD
|
||||
/W1
|
||||
/bigobj
|
||||
/wd4291
|
||||
/wd4624
|
||||
/wd4244>)
|
||||
target_compile_definitions(clang-uml PRIVATE ${ENABLE_BACKWARD_CPP})
|
||||
target_link_libraries(
|
||||
clang-uml
|
||||
${YAML_CPP_LIBRARIES}
|
||||
${LIBTOOLING_LIBS}
|
||||
${MSVC_LIBRARIES}
|
||||
${BACKWARD_CPP_LIBRARIES}
|
||||
clang-umllib
|
||||
Threads::Threads)
|
||||
|
||||
#
|
||||
# Setup install options
|
||||
@ -77,7 +98,7 @@ install(FILES ${PROJECT_SOURCE_DIR}/CHANGELOG.md
|
||||
set(CPACK_PACKAGE_NAME "clang-uml")
|
||||
set(CPACK_PACKAGE_VENDOR "Bartek Kryza <bkryza@gmail.com>")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
||||
"clang-uml - C++ UML diagram generator based on Clang")
|
||||
"clang-uml - C++ UML diagram generator based on Clang")
|
||||
set(CPACK_PACKAGE_VERSION "${GIT_VERSION}")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "${GIT_VERSION_MAJOR}")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "${GIT_VERSION_MINOR}")
|
||||
|
@ -1,34 +1,48 @@
|
||||
|
||||
file(GLOB_RECURSE TEST_CASE_SOURCES t*/*.cc t*/*.c t*/src/*.c t*/*.cu)
|
||||
file(GLOB_RECURSE TEST_CASES_OBJC_SOURCES t*/*.m t*/src/*.m)
|
||||
file(GLOB_RECURSE TEST_CASE_MODULE_SOURCES t*/src/*.cppm)
|
||||
file(GLOB_RECURSE TEST_CASE_CONFIGS t*/.clang-uml)
|
||||
file(GLOB_RECURSE TEST_CONFIG_YMLS test_config_data/*.yml
|
||||
test_compilation_database_data/*.yml
|
||||
test_compilation_database_data/*.json)
|
||||
test_compilation_database_data/*.yml test_compilation_database_data/*.json)
|
||||
|
||||
set(TEST_CASES_REQUIRING_CXX20 t00056 t00058 t00059 t00065 t00069 t00074 t00075)
|
||||
set(TEST_CASES_REQUIRING_CXX20_MODULES t00070 t00071 t00072
|
||||
t30012 t30013 t30014 t30015)
|
||||
set(TEST_CASES_REQUIRING_CXX20
|
||||
t00056
|
||||
t00058
|
||||
t00059
|
||||
t00065
|
||||
t00069
|
||||
t00074
|
||||
t00075)
|
||||
set(TEST_CASES_REQUIRING_CXX20_MODULES
|
||||
t00070
|
||||
t00071
|
||||
t00072
|
||||
t30012
|
||||
t30013
|
||||
t30014
|
||||
t30015)
|
||||
set(TEST_CASES_REQUIRING_CUDA t20049 t20050 t20051)
|
||||
set(TEST_CASES_REQUIRING_OBJC t00084 t00085 t00086 t20057 t20058 t30016 t40004)
|
||||
set(TEST_CASES_REQUIRING_OBJC
|
||||
t00084
|
||||
t00085
|
||||
t00086
|
||||
t20057
|
||||
t20058
|
||||
t30016
|
||||
t40004)
|
||||
|
||||
if(ENABLE_OBJECTIVE_C_TEST_CASES)
|
||||
message(STATUS "Enabling Objective-C test cases")
|
||||
if(FETCH_LIBOBJC2)
|
||||
include(CPM)
|
||||
CPMAddPackage(
|
||||
NAME libobjc2
|
||||
GITHUB_REPOSITORY bkryza/libobjc2
|
||||
GIT_TAG fix-cmake-variables
|
||||
)
|
||||
cpmaddpackage(NAME libobjc2 GITHUB_REPOSITORY bkryza/libobjc2 GIT_TAG
|
||||
fix-cmake-variables)
|
||||
set(FETCHED_LIBOBJC2_NAME objc)
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "Disabling Objective-C test cases")
|
||||
endif(ENABLE_OBJECTIVE_C_TEST_CASES)
|
||||
|
||||
|
||||
if(ENABLE_CXX_MODULES_TEST_CASES)
|
||||
message(STATUS "Enabling C++ modules test cases")
|
||||
|
||||
@ -40,34 +54,23 @@ else()
|
||||
message(STATUS "Disabling C++ modules test cases")
|
||||
|
||||
foreach(CXX20_MOD_TC ${TEST_CASES_REQUIRING_CXX20_MODULES})
|
||||
list(FILTER TEST_CASE_SOURCES
|
||||
EXCLUDE
|
||||
REGEX ".*${CXX20_MOD_TC}.*")
|
||||
list(FILTER TEST_CASE_CONFIGS
|
||||
EXCLUDE
|
||||
REGEX ".*${CXX20_MOD_TC}.*")
|
||||
list(FILTER TEST_CASE_SOURCES EXCLUDE REGEX ".*${CXX20_MOD_TC}.*")
|
||||
list(FILTER TEST_CASE_CONFIGS EXCLUDE REGEX ".*${CXX20_MOD_TC}.*")
|
||||
endforeach()
|
||||
endif(ENABLE_CXX_MODULES_TEST_CASES)
|
||||
|
||||
if(NOT ENABLE_CUDA_TEST_CASES)
|
||||
message(STATUS "Disabling CUDA test cases")
|
||||
foreach(CUDA_TC ${TEST_CASES_REQUIRING_CUDA})
|
||||
list(FILTER TEST_CASE_SOURCES
|
||||
EXCLUDE
|
||||
REGEX ".*${CUDA_TC}.*")
|
||||
list(FILTER TEST_CASE_CONFIGS
|
||||
EXCLUDE
|
||||
REGEX ".*${CUDA_TC}.*")
|
||||
list(FILTER TEST_CASE_SOURCES EXCLUDE REGEX ".*${CUDA_TC}.*")
|
||||
list(FILTER TEST_CASE_CONFIGS EXCLUDE REGEX ".*${CUDA_TC}.*")
|
||||
endforeach()
|
||||
else()
|
||||
message(STATUS "Enabling CUDA test cases")
|
||||
endif(NOT ENABLE_CUDA_TEST_CASES)
|
||||
|
||||
set(CLANG_UML_TEST_LIBRARIES
|
||||
clang-umllib
|
||||
${YAML_CPP_LIBRARIES}
|
||||
${LIBTOOLING_LIBS}
|
||||
Threads::Threads)
|
||||
set(CLANG_UML_TEST_LIBRARIES clang-umllib ${YAML_CPP_LIBRARIES}
|
||||
${LIBTOOLING_LIBS} Threads::Threads)
|
||||
|
||||
if(MSVC)
|
||||
list(APPEND CLANG_UML_TEST_LIBRARIES "Version.lib")
|
||||
@ -75,18 +78,12 @@ endif(MSVC)
|
||||
|
||||
list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_std_20 SUPPORTS_CXX_STD_20)
|
||||
|
||||
|
||||
# Remove test cases which require C++20 if they are not supported here
|
||||
if(SUPPORTS_CXX_STD_20 EQUAL -1
|
||||
OR ${LLVM_PACKAGE_VERSION} VERSION_LESS "14.0")
|
||||
if(SUPPORTS_CXX_STD_20 EQUAL -1 OR ${LLVM_PACKAGE_VERSION} VERSION_LESS "14.0")
|
||||
set(ENABLE_CXX_STD_20_TEST_CASES 0)
|
||||
foreach(CXX20_TC ${TEST_CASES_REQUIRING_CXX20})
|
||||
list(FILTER TEST_CASE_SOURCES
|
||||
EXCLUDE
|
||||
REGEX ".*${CXX20_TC}.*")
|
||||
list(FILTER TEST_CASE_CONFIGS
|
||||
EXCLUDE
|
||||
REGEX ".*${CXX20_TC}.*")
|
||||
list(FILTER TEST_CASE_SOURCES EXCLUDE REGEX ".*${CXX20_TC}.*")
|
||||
list(FILTER TEST_CASE_CONFIGS EXCLUDE REGEX ".*${CXX20_TC}.*")
|
||||
endforeach()
|
||||
message(STATUS "Disabling C++20 test cases")
|
||||
else()
|
||||
@ -96,91 +93,99 @@ endif()
|
||||
|
||||
if(APPLE)
|
||||
# On Apple Clang <coroutine> header is not available
|
||||
list(FILTER TEST_CASE_SOURCES
|
||||
EXCLUDE
|
||||
REGEX ".*t00069.*")
|
||||
list(FILTER TEST_CASE_SOURCES EXCLUDE REGEX ".*t00069.*")
|
||||
endif(APPLE)
|
||||
|
||||
set(TEST_NAMES
|
||||
test_types
|
||||
test_util
|
||||
test_model
|
||||
test_cases
|
||||
test_compilation_database
|
||||
test_decorator_parser
|
||||
test_config
|
||||
test_cli_handler
|
||||
test_filters
|
||||
test_filters_advanced
|
||||
test_thread_pool_executor
|
||||
test_query_driver_output_extractor
|
||||
test_progress_indicator)
|
||||
test_types
|
||||
test_util
|
||||
test_model
|
||||
test_cases
|
||||
test_compilation_database
|
||||
test_decorator_parser
|
||||
test_config
|
||||
test_cli_handler
|
||||
test_filters
|
||||
test_filters_advanced
|
||||
test_thread_pool_executor
|
||||
test_query_driver_output_extractor
|
||||
test_progress_indicator)
|
||||
|
||||
foreach(TEST_NAME ${TEST_NAMES})
|
||||
add_executable(${TEST_NAME})
|
||||
if(TEST_NAME STREQUAL "test_cases")
|
||||
if(ENABLE_CXX_MODULES_TEST_CASES)
|
||||
target_sources(${TEST_NAME} PUBLIC FILE_SET CXX_MODULES FILES
|
||||
${TEST_CASE_MODULE_SOURCES})
|
||||
${TEST_CASE_MODULE_SOURCES})
|
||||
endif(ENABLE_CXX_MODULES_TEST_CASES)
|
||||
if(ENABLE_OBJECTIVE_C_TEST_CASES)
|
||||
# We need to link the objective test cases sources to a separate
|
||||
# ObjC library than the rest of C++ test cases
|
||||
add_library(test_cases_objc)
|
||||
if(APPLE)
|
||||
target_compile_options(test_cases_objc PRIVATE "SHELL:-isystem ${LLVM_INCLUDE_DIR}/c++/v1"
|
||||
"SHELL:-isystem ${LLVM_LIBRARY_DIR}/clang/${LLVM_VERSION_MAJOR}/include")
|
||||
target_compile_options(
|
||||
test_cases_objc
|
||||
PRIVATE
|
||||
"SHELL:-isystem ${LLVM_INCLUDE_DIR}/c++/v1"
|
||||
"SHELL:-isystem ${LLVM_LIBRARY_DIR}/clang/${LLVM_VERSION_MAJOR}/include"
|
||||
)
|
||||
else(APPLE)
|
||||
target_compile_options(test_cases_objc PRIVATE ${GNUSTEP_CFLAGS})
|
||||
target_link_libraries(test_cases_objc PRIVATE ${GNUSTEP_LDFLAGS} ${FETCHED_LIBOBJC2_NAME})
|
||||
target_compile_options(test_cases_objc
|
||||
PRIVATE ${GNUSTEP_CFLAGS})
|
||||
target_link_libraries(
|
||||
test_cases_objc PRIVATE ${GNUSTEP_LDFLAGS}
|
||||
${FETCHED_LIBOBJC2_NAME})
|
||||
endif(APPLE)
|
||||
target_sources(test_cases_objc PUBLIC ${TEST_CASES_OBJC_SOURCES})
|
||||
endif(ENABLE_OBJECTIVE_C_TEST_CASES)
|
||||
target_sources(${TEST_NAME} PUBLIC ${TEST_NAME}.cc
|
||||
${TEST_CASE_SOURCES})
|
||||
target_sources(${TEST_NAME} PUBLIC ${TEST_NAME}.cc ${TEST_CASE_SOURCES})
|
||||
else()
|
||||
target_sources(${TEST_NAME} PUBLIC ${TEST_NAME}.cc)
|
||||
endif(TEST_NAME STREQUAL "test_cases")
|
||||
|
||||
target_compile_features(${TEST_NAME} PRIVATE
|
||||
$<IF:${ENABLE_CXX_STD_20_TEST_CASES},cxx_std_20,cxx_std_17>)
|
||||
target_compile_definitions(${TEST_NAME} PRIVATE
|
||||
target_compile_features(
|
||||
${TEST_NAME}
|
||||
PRIVATE $<IF:${ENABLE_CXX_STD_20_TEST_CASES},cxx_std_20,cxx_std_17>)
|
||||
target_compile_definitions(
|
||||
${TEST_NAME}
|
||||
PRIVATE
|
||||
$<$<EQUAL:${ENABLE_CXX_STD_20_TEST_CASES},1>:ENABLE_CXX_STD_20_TEST_CASES>
|
||||
$<$<BOOL:${ENABLE_CXX_MODULES_TEST_CASES}>:ENABLE_CXX_MODULES_TEST_CASES>
|
||||
$<$<BOOL:${ENABLE_CUDA_TEST_CASES}>:ENABLE_CUDA_TEST_CASES>
|
||||
$<$<BOOL:${ENABLE_OBJECTIVE_C_TEST_CASES}>:ENABLE_OBJECTIVE_C_TEST_CASES>)
|
||||
target_compile_options(${TEST_NAME} PRIVATE
|
||||
$<$<COMPILE_LANGUAGE:CXX>:
|
||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:
|
||||
-Wno-unused-parameter -Wno-unused-variable
|
||||
-Wno-attributes -Wno-nonnull -Wno-deprecated-enum-enum-conversion
|
||||
${CUSTOM_COMPILE_OPTIONS}>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:/MP /MD /W1 /bigobj /wd4624>>)
|
||||
$<$<BOOL:${ENABLE_OBJECTIVE_C_TEST_CASES}>:ENABLE_OBJECTIVE_C_TEST_CASES>
|
||||
)
|
||||
target_compile_options(
|
||||
${TEST_NAME}
|
||||
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:
|
||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:
|
||||
-Wno-unused-parameter
|
||||
-Wno-unused-variable
|
||||
-Wno-attributes
|
||||
-Wno-nonnull
|
||||
-Wno-deprecated-enum-enum-conversion
|
||||
${CUSTOM_COMPILE_OPTIONS}>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:/MP
|
||||
/MD
|
||||
/W1
|
||||
/bigobj
|
||||
/wd4624>>)
|
||||
target_link_libraries(${TEST_NAME} PRIVATE ${CLANG_UML_TEST_LIBRARIES})
|
||||
endforeach()
|
||||
|
||||
foreach(TEST_CASE_CONFIG ${TEST_CASE_CONFIGS})
|
||||
file(RELATIVE_PATH
|
||||
TEST_CASE_CONFIG_RELATIVE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${TEST_CASE_CONFIG})
|
||||
file(RELATIVE_PATH TEST_CASE_CONFIG_RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${TEST_CASE_CONFIG})
|
||||
message(DEBUG ${TEST_CASE_CONFIG_RELATIVE})
|
||||
configure_file(
|
||||
${TEST_CASE_CONFIG_RELATIVE}
|
||||
${TEST_CASE_CONFIG_RELATIVE}
|
||||
COPYONLY)
|
||||
configure_file(${TEST_CASE_CONFIG_RELATIVE} ${TEST_CASE_CONFIG_RELATIVE}
|
||||
COPYONLY)
|
||||
endforeach()
|
||||
|
||||
foreach(TEST_CONFIG_YML ${TEST_CONFIG_YMLS})
|
||||
file(RELATIVE_PATH
|
||||
TEST_CONFIG_YML_RELATIVE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${TEST_CONFIG_YML})
|
||||
file(RELATIVE_PATH TEST_CONFIG_YML_RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${TEST_CONFIG_YML})
|
||||
message(DEBUG ${TEST_CONFIG_YML_RELATIVE})
|
||||
configure_file(
|
||||
${TEST_CONFIG_YML_RELATIVE}
|
||||
${TEST_CONFIG_YML_RELATIVE}
|
||||
COPYONLY)
|
||||
configure_file(${TEST_CONFIG_YML_RELATIVE} ${TEST_CONFIG_YML_RELATIVE}
|
||||
COPYONLY)
|
||||
endforeach()
|
||||
|
||||
foreach(TEST_NAME ${TEST_NAMES})
|
||||
|
Loading…
x
Reference in New Issue
Block a user