Fixed building with clang
This commit is contained in:
@@ -15,16 +15,18 @@ set(CLANG_UML_INSTALL_BIN_DIR ${PROJECT_SOURCE_DIR}/bin)
|
|||||||
|
|
||||||
set(UML_HEADERS_DIR ${PROJECT_SOURCE_DIR}/src/uml)
|
set(UML_HEADERS_DIR ${PROJECT_SOURCE_DIR}/src/uml)
|
||||||
|
|
||||||
set(LLVM_PREFERRED_VERSION 12.0.0)
|
|
||||||
|
|
||||||
message(STATUS "Checking for spdlog...")
|
message(STATUS "Checking for spdlog...")
|
||||||
find_package(spdlog REQUIRED)
|
find_package(spdlog REQUIRED)
|
||||||
get_target_property(SPDLOG_INCLUDE_DIRS spdlog::spdlog INTERFACE_INCLUDE_DIRECTORIES)
|
get_target_property(SPDLOG_INCLUDE_DIRS spdlog::spdlog_header_only INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
add_definitions(-DSPDLOG_FMT_EXTERNAL)
|
||||||
|
|
||||||
message(STATUS "Checking for yaml-cpp...")
|
message(STATUS "Checking for yaml-cpp...")
|
||||||
find_package(yaml-cpp REQUIRED)
|
find_package(yaml-cpp REQUIRED)
|
||||||
|
|
||||||
message(STATUS "Checking for libclang...")
|
message(STATUS "Checking for libclang...")
|
||||||
|
set(LLVM_PREFERRED_VERSION 12.0.0)
|
||||||
|
set(LIBCLANG_LLVM_CONFIG_EXECUTABLE "/usr/local/opt/llvm@12/bin/llvm-config")
|
||||||
find_package(LibClang REQUIRED)
|
find_package(LibClang REQUIRED)
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 ${LIBCLANG_CXXFLAGS}")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 ${LIBCLANG_CXXFLAGS}")
|
||||||
@@ -63,7 +65,7 @@ add_library(clang-umllib OBJECT ${SOURCES})
|
|||||||
|
|
||||||
add_executable(clang-uml ${MAIN_SOURCE_FILE})
|
add_executable(clang-uml ${MAIN_SOURCE_FILE})
|
||||||
install(TARGETS clang-uml DESTINATION ${CLANG_UML_INSTALL_BIN_DIR})
|
install(TARGETS clang-uml DESTINATION ${CLANG_UML_INSTALL_BIN_DIR})
|
||||||
target_link_libraries(clang-uml ${LIBCLANG_LIBRARIES} ${YAML_CPP_LIBRARIES} spdlog::spdlog cppast clang-umllib)
|
target_link_libraries(clang-uml ${LIBCLANG_LIBRARIES} ${YAML_CPP_LIBRARIES} spdlog::spdlog_header_only cppast clang-umllib)
|
||||||
target_compile_features(clang-uml PRIVATE cxx_std_17)
|
target_compile_features(clang-uml PRIVATE cxx_std_17)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -38,7 +38,7 @@ release/CMakeLists.txt:
|
|||||||
|
|
||||||
debug: debug/CMakeLists.txt
|
debug: debug/CMakeLists.txt
|
||||||
echo "Using ${NUMPROC} cores"
|
echo "Using ${NUMPROC} cores"
|
||||||
make -C debug -j$(NUMPROC)
|
make -C debug -j$(NUMPROC) VERBOSE=1
|
||||||
|
|
||||||
release: release/CMakeLists.txt
|
release: release/CMakeLists.txt
|
||||||
make -C release -j
|
make -C release -j
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
#include <utility>
|
||||||
|
|
||||||
namespace clanguml {
|
namespace clanguml {
|
||||||
namespace t00017 {
|
namespace t00017 {
|
||||||
class A {
|
class A {
|
||||||
@@ -34,6 +36,15 @@ class K {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class R {
|
class R {
|
||||||
|
explicit R(int &some_int, C &cc, const E &ee, F &&ff, I *&ii)
|
||||||
|
: some_int_reference{some_int}
|
||||||
|
, c{cc}
|
||||||
|
, e{ee}
|
||||||
|
, f{std::move(ff)}
|
||||||
|
, i{ii}
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int some_int;
|
int some_int;
|
||||||
int *some_int_pointer;
|
int *some_int_pointer;
|
||||||
@@ -43,7 +54,7 @@ private:
|
|||||||
B *b;
|
B *b;
|
||||||
C &c;
|
C &c;
|
||||||
const D *d;
|
const D *d;
|
||||||
const E &e{};
|
const E &e;
|
||||||
F &&f;
|
F &&f;
|
||||||
G **g;
|
G **g;
|
||||||
H ***h;
|
H ***h;
|
||||||
|
|||||||
Reference in New Issue
Block a user