aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@gmail.com>2025-04-07 13:19:03 +0200
committerCristian Adam <cristian.adam@gmail.com>2025-09-24 22:07:29 +0200
commitc93e34a826d8b12811202f922f1d59de5c0e76ba (patch)
tree9e962d22617a4bcf5a9368d0b919550eaa210348
parent74ed0c7eb48c771b4b28b2c4fab54e3b78ea8bef (diff)
Build clazy-standalone using LLVM/Clang CMake packages1.16-based
Use CLAZY_BUILD_WITH_CLANG to find LLVM and Clang CMake packages from a LLVM/Clang build. This doesn't mean installing Clazy in the LLVM/Clang sources, but to use find_package(LLVM/Clang) via CMake and CMAKE_PREFIX_PATH. Change-Id: Ic853197a8aa01cc1e9e83e3cbb72aa088f585477
-rw-r--r--CMakeLists.txt28
-rw-r--r--ClazyTests.cmake26
2 files changed, 41 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9640b2d2..13aed0be 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,6 +35,15 @@ if (NOT CLAZY_BUILD_WITH_CLANG)
set(default_use_clang_cpp OFF)
endif()
option(CLAZY_LINK_CLANG_DYLIB "Link clazy to dynamic Clang C++ library clang-cpp." ${default_use_clang_cpp})
+
+ if (NOT CLAZY_LINK_CLANG_DYLIB)
+ add_definitions(-DCLANG_EXPORTS)
+ endif()
+else()
+ find_package(LLVM CONFIG REQUIRED)
+ find_package(Clang CONFIG REQUIRED)
+ include("${LLVM_CMAKE_DIR}/AddLLVM.cmake")
+ include("${CLANG_CMAKE_DIR}/AddClang.cmake")
endif()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
@@ -280,10 +289,10 @@ else()
clangRewrite
clangAST
clangASTMatchers
+ clangAPINotes
clangParse
clangLex
clangBasic
- clangARCMigrate
clangEdit
clangFrontendTool
clangRewrite
@@ -299,6 +308,23 @@ else()
target_link_libraries(clazy-standalone clazyPlugin)
install(TARGETS clazy-standalone DESTINATION bin PERMISSIONS OWNER_WRITE OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE)
+
+ # Install the explanation README's
+ include(${CMAKE_CURRENT_LIST_DIR}/readmes.cmake)
+
+ install(FILES ${README_LEVEL0_FILES} DESTINATION ${CMAKE_INSTALL_DOCDIR}/level0)
+ install(FILES ${README_LEVEL1_FILES} DESTINATION ${CMAKE_INSTALL_DOCDIR}/level1)
+ install(FILES ${README_LEVEL2_FILES} DESTINATION ${CMAKE_INSTALL_DOCDIR}/level2)
+ install(FILES ${README_manuallevel_FILES} DESTINATION ${CMAKE_INSTALL_DOCDIR}/manuallevel)
+
+ # Install more doc files
+ install(FILES README.md LICENSES/LGPL-2.0-or-later.txt checks.json DESTINATION ${CMAKE_INSTALL_DOCDIR})
+
+ # Build docs
+ if (CLAZY_MAN_PAGE)
+ add_subdirectory(docs)
+ endif()
+
endif()
diff --git a/ClazyTests.cmake b/ClazyTests.cmake
index 5457d6ac..9bd277c2 100644
--- a/ClazyTests.cmake
+++ b/ClazyTests.cmake
@@ -5,21 +5,23 @@ if ($ENV{CI_JOB_NAME_SLUG} MATCHES "qt5")
elseif($ENV{CI_JOB_NAME_SLUG} MATCHES "qt6")
set(TEST_VERSION_OPTION "--qt-versions=6")
endif()
-if (NOT CLAZY_BUILD_CLANG_TIDY)
- set(TEST_OPTIONS "--no-clang-tidy")
-endif()
macro(add_clazy_test name)
- add_test(NAME ${name} COMMAND python3 run_tests.py ${name} --verbose ${TEST_VERSION_OPTION} ${TEST_OPTIONS} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/)
- if (CLANG_EXECUTABLE_PATH)
- set(CLANG_CXX_TEST "CLANGXX=${CLANG_EXECUTABLE_PATH};")
- endif()
- if (CLAZY_BUILD_CLANG_TIDY)
- set(CLANGTIDYPLUGIN_CXX "CLANGTIDYPLUGIN_CXX=$<TARGET_FILE:ClazyClangTidy>;")
+ if (NOT CLAZY_BUILD_WITH_CLANG)
+ add_test(NAME ${name} COMMAND python3 run_tests.py ${name} --verbose ${TEST_VERSION_OPTION} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/)
+ if (CLANG_EXECUTABLE_PATH)
+ set(CLANG_CXX_TEST "CLANGXX=${CLANG_EXECUTABLE_PATH};")
+ endif()
+ set_property(TEST ${name} PROPERTY
+ ENVIRONMENT "${CLANG_CXX_TEST}CLAZYPLUGIN_CXX=$<TARGET_FILE:ClazyPlugin>;CLAZYSTANDALONE_CXX=$<TARGET_FILE:clazy-standalone>;$<$<BOOL:${HAS_STD_FILESYSTEM}>:CLAZY_HAS_FILESYSTEM=>"
+ )
+ else()
+ add_test(NAME ${name}
+ COMMAND python3 run_tests.py ${name} --verbose ${TEST_VERSION_OPTION} --only-standalone WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/)
+ set_property(TEST ${name} PROPERTY
+ ENVIRONMENT "CLANGXX=$<TARGET_FILE:clang>;CLAZYSTANDALONE_CXX=$<TARGET_FILE:clazy-standalone>;$<$<BOOL:${HAS_STD_FILESYSTEM}>:CLAZY_HAS_FILESYSTEM=>"
+ )
endif()
- set_property(TEST ${name} PROPERTY
- ENVIRONMENT "${CLANG_CXX_TEST}${CLANGTIDYPLUGIN_CXX}CLAZYPLUGIN_CXX=$<TARGET_FILE:ClazyPlugin>;CLAZYSTANDALONE_CXX=$<TARGET_FILE:clazy-standalone>"
- )
endmacro()
include(ClazyTests.generated.cmake)