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
2126if (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} \" " )
2833endif ()
2934
3035llvm_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