Skip to content

Commit dcadd7c

Browse files
committed
Put cpp_rule_preprocessor in cmakelists
1 parent 39b1133 commit dcadd7c

3 files changed

Lines changed: 28 additions & 15 deletions

File tree

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ tmp
2525
*.LOCAL.*
2626
*.REMOTE.*
2727

28-
# Integration tests
29-
tests/cpp2rust-tests/
28+
# Generated by cpp-rule-preprocessor at build time.
29+
rules/*/ir_src.json

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,12 @@ add_custom_target("check-rules"
142142
${CMAKE_COMMAND} -E env
143143
CARGO_TARGET_DIR=${PROJECT_SOURCE_DIR}/rule-preprocessor/target
144144
cargo run
145+
COMMAND $<TARGET_FILE:cpp-rule-preprocessor>
146+
--rules ${PROJECT_SOURCE_DIR}/rules
145147
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_SOURCE_DIR}
146148
git diff --exit-code -- rules/
147149
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/rules"
148-
DEPENDS install-rust-toolchain
150+
DEPENDS install-rust-toolchain cpp-rule-preprocessor
149151
USES_TERMINAL
150152
)
151153

cpp2rust/CMakeLists.txt

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
file(GLOB_RECURSE SOURCES "*.cpp")
2-
add_clang_executable(cpp2rust ${SOURCES})
1+
file(GLOB_RECURSE CORE_SOURCES "*.cpp")
2+
list(REMOVE_ITEM CORE_SOURCES
3+
"${CMAKE_CURRENT_SOURCE_DIR}/cpp2rust.cpp"
4+
"${CMAKE_CURRENT_SOURCE_DIR}/cpp_rule_preprocessor.cpp"
5+
)
6+
7+
add_library(cpp2rust_core STATIC ${CORE_SOURCES})
38

4-
target_link_libraries(cpp2rust PRIVATE
9+
target_link_libraries(cpp2rust_core PUBLIC
510
clangAST
611
clangASTMatchers
712
clangBasic
@@ -10,22 +15,28 @@ target_link_libraries(cpp2rust PRIVATE
1015
clangSerialization
1116
clangTooling
1217
)
13-
target_include_directories(cpp2rust PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
14-
target_include_directories(cpp2rust PUBLIC SYSTEM ${CLANG_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS})
15-
target_compile_definitions(cpp2rust PUBLIC ${LLVM_DEFINITIONS})
16-
target_compile_definitions(cpp2rust PUBLIC "-DCLANG_C_COMPILER=\"${CMAKE_C_COMPILER}\"")
17-
target_compile_definitions(cpp2rust PUBLIC "-DCLANG_CXX_COMPILER=\"${CMAKE_CXX_COMPILER}\"")
18-
target_compile_definitions(cpp2rust PUBLIC "-DCLANG_RESOURCE_DIR=\"${LLVM_LIBRARY_DIR}/clang/${LLVM_VERSION_MAJOR}\"")
19-
target_compile_definitions(cpp2rust PUBLIC "-DCOMPAT_INCLUDE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/compat\"")
18+
target_include_directories(cpp2rust_core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
19+
target_include_directories(cpp2rust_core SYSTEM PUBLIC ${CLANG_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS})
20+
target_compile_definitions(cpp2rust_core PUBLIC ${LLVM_DEFINITIONS})
21+
target_compile_definitions(cpp2rust_core PUBLIC "-DCLANG_C_COMPILER=\"${CMAKE_C_COMPILER}\"")
22+
target_compile_definitions(cpp2rust_core PUBLIC "-DCLANG_CXX_COMPILER=\"${CMAKE_CXX_COMPILER}\"")
23+
target_compile_definitions(cpp2rust_core PUBLIC "-DCLANG_RESOURCE_DIR=\"${LLVM_LIBRARY_DIR}/clang/${LLVM_VERSION_MAJOR}\"")
24+
target_compile_definitions(cpp2rust_core PUBLIC "-DCOMPAT_INCLUDE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/compat\"")
2025

2126
if (APPLE)
2227
execute_process(
2328
COMMAND xcrun --show-sdk-path
2429
OUTPUT_VARIABLE MACOS_SDK_PATH
2530
OUTPUT_STRIP_TRAILING_WHITESPACE
2631
)
27-
target_compile_definitions(cpp2rust PUBLIC "-DMACOS_SDK_PATH=\"${MACOS_SDK_PATH}\"")
32+
target_compile_definitions(cpp2rust_core PUBLIC "-DMACOS_SDK_PATH=\"${MACOS_SDK_PATH}\"")
2833
endif()
2934

3035
llvm_map_components_to_libnames(llvm_libs support)
31-
target_link_libraries(cpp2rust PRIVATE ${llvm_libs})
36+
target_link_libraries(cpp2rust_core PUBLIC ${llvm_libs})
37+
38+
add_clang_executable(cpp2rust PARTIAL_SOURCES_INTENDED cpp2rust.cpp)
39+
target_link_libraries(cpp2rust PRIVATE cpp2rust_core)
40+
41+
add_clang_executable(cpp-rule-preprocessor PARTIAL_SOURCES_INTENDED cpp_rule_preprocessor.cpp)
42+
target_link_libraries(cpp-rule-preprocessor PRIVATE cpp2rust_core)

0 commit comments

Comments
 (0)