1
- cmake_minimum_required (VERSION 3.15.5 )
1
+ cmake_minimum_required (VERSION 3.20.0 )
2
2
project (genpybind LANGUAGES C CXX)
3
3
4
4
set (CMAKE_EXPORT_COMPILE_COMMANDS YES )
@@ -16,11 +16,12 @@ add_compile_options(
16
16
-Wall -Wextra -Wconversion -pedantic -pedantic-errors
17
17
)
18
18
19
- find_package (Clang REQUIRED
20
- HINTS "/usr/lib64/cmake/clang"
21
- )
19
+ find_package (Clang REQUIRED HINTS "/usr/lib64/cmake/clang" )
20
+ message (STATUS "Found Clang ${Clang_VERSION} ; using ClangConfig.cmake in: ${Clang_DIR} " )
21
+
22
+ find_package (LLVM REQUIRED CONFIG)
23
+ message (STATUS "Found LLVM ${LLVM_PACKAGE_VERSION} ; using LLVMConfig.cmake in: ${LLVM_DIR} " )
22
24
23
- list (APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR} " )
24
25
include (AddLLVM)
25
26
26
27
find_program (IWYU_PATH NAMES include -what-you-use iwyu)
@@ -30,8 +31,7 @@ if(NOT IWYU_PATH STREQUAL "IWYU_PATH-NOTFOUND")
30
31
-Xiwyu --mapping_file=${CMAKE_CURRENT_SOURCE_DIR} /genpybind.imp
31
32
-Xiwyu --transitive_includes_only
32
33
-Xiwyu --quoted_includes_first
33
- # TODO: Use ${CLANG_VERSION} instead
34
- -resource -dir=${LLVM_LIBRARY_DIR} /clang/${LLVM_PACKAGE_VERSION}
34
+ -resource -dir=${LLVM_LIBRARY_DIR} /clang/${Clang_VERSION}
35
35
)
36
36
endif ()
37
37
@@ -58,7 +58,14 @@ add_library(genpybind SHARED
58
58
# Use same compiler flags as LLVM.
59
59
llvm_update_compile_flags(genpybind)
60
60
61
- target_link_libraries (genpybind PUBLIC LLVM clang-cpp)
61
+ # Link against libLLVM.so, if available.
62
+ if (LLVM_LINK_LLVM_DYLIB)
63
+ set (llvm_libs LLVM)
64
+ else ()
65
+ llvm_map_components_to_libnames(llvm_libs support)
66
+ endif ()
67
+
68
+ target_link_libraries (genpybind PUBLIC ${llvm_libs} clang-cpp)
62
69
target_include_directories (genpybind
63
70
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
64
71
# PUBLIC $<INSTALL_INTERFACE:...>
@@ -74,6 +81,8 @@ add_executable(genpybind-tool
74
81
src/tool.cpp
75
82
)
76
83
84
+ llvm_update_compile_flags(genpybind-tool)
85
+
77
86
target_link_libraries (genpybind-tool PRIVATE genpybind)
78
87
79
88
add_subdirectory (extern/pybind11)
0 commit comments