meta/CMakeLists.txt

53 lines
1.7 KiB
CMake
Raw Permalink Normal View History

2024-03-01 19:43:13 +08:00
cmake_minimum_required(VERSION 3.10)
project(meta LANGUAGES CXX VERSION 0.1.0)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
add_subdirectory(3rdparty/sled EXCLUDE_FROM_ALL)
2024-03-01 22:34:29 +08:00
add_executable(meta
src/main.cc
src/clang/cursor.cc
src/clang/cursor_type.cc
2024-03-03 00:16:56 +08:00
src/clang/parser.cc
2024-03-04 09:00:03 +08:00
src/generators/base_generator.cc
2024-03-03 17:19:41 +08:00
src/types/base_type.cc
src/types/class.cc
src/types/field.cc
src/types/method.cc
src/registry.cc
2024-03-05 09:45:08 +08:00
# runtime/test.gen.cc
# runtime/reflection.gen.cc
2024-03-01 22:34:29 +08:00
)
2024-03-01 19:43:13 +08:00
2024-03-01 22:34:29 +08:00
### add clang
set(CLANG_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/LLVM/include")
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
2024-03-02 18:06:59 +08:00
set(CLANG_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/LLVM/bin/Linux")
set(CLANG_LIB_LIBRARIES "${CLANG_LIB_DIR}/libclang.so.12")
2024-03-01 22:34:29 +08:00
elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows")
message(FATAL "${CMAKE_SYSTEM_NAME} is not supported")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(OSX_DEVELOPER_ROOT "/Applications/Xcode.app/Contents/Developer/")
set(CLANG_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/LLVM/bin/macOS")
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
set(CLANG_LIB_LIBRARIES ${OSX_DEVELOPER_ROOT}/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib)
else()
set(CLANG_LIB_LIBRARIES "${CLANG_LIB_DIR}/libclang.dylib")
endif()
endif()
2024-03-06 08:55:49 +08:00
add_executable(test test/main.cc)
target_include_directories(test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(test PRIVATE sled)
2024-03-04 09:00:03 +08:00
target_include_directories(meta PRIVATE
${CLANG_INCLUDE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/src
2024-03-04 18:21:58 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/runtime
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/inja)
2024-03-01 22:34:29 +08:00
target_link_libraries(meta PRIVATE sled ${CLANG_LIB_LIBRARIES})