Compare commits

...

5 Commits

Author SHA1 Message Date
Bartek Kryza
6226b31ea4 Fix static LLVM linking (#225) 2024-01-28 20:02:29 +01:00
Bartek Kryza
875bf16621 Merge pull request #233 from bkryza/fix-glob-absolute-paths
Fixed handling of absolute paths in glob patterns
2024-01-28 17:11:53 +01:00
Bartek Kryza
7d28be525f Fixed glob absolute paths handling on Windows 2024-01-28 15:55:59 +01:00
Bartek Kryza
3dba31a792 Fixed handling of absolute paths in glob patterns 2024-01-28 13:12:07 +01:00
Bartek Kryza
334140b73c Merge pull request #232 from bkryza/refactor-sequence-tuvisitor-template-building
Refactor sequence tuvisitor template building
2024-01-25 11:11:52 +01:00
7 changed files with 29 additions and 19 deletions

View File

@@ -32,6 +32,7 @@ endif
LLVM_VERSION ?=
LLVM_CONFIG_PATH ?=
LLVM_SHARED ?= ON
CMAKE_PREFIX ?=
CMAKE_CXX_FLAGS ?=
CMAKE_EXE_LINKER_FLAGS ?=
@@ -60,6 +61,7 @@ debug/CMakeLists.txt:
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES)
@@ -73,6 +75,7 @@ release/CMakeLists.txt:
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES)
@@ -87,6 +90,7 @@ debug_tidy/CMakeLists.txt:
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES)

View File

@@ -1,4 +1,4 @@
param ($Prefix="C:\clang-uml", $BuildType="Release")
param ($Prefix="C:\clang-uml-llvm17", $BuildType="Release")
cmake -S . -B $BuildType -DCMAKE_PREFIX_PATH="$Prefix" -DENABLE_CXX_MODULES_TEST_CASES=OFF -Thost=x64
cmake --build $BuildType --config $BuildType

View File

@@ -67,18 +67,16 @@ else(LINK_LLVM_SHARED)
LLVMBitReader
LLVMCore
LLVMSupport)
if(MSVC)
if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0")
list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport)
else()
list(APPEND LIBTOOLING_LIBS
LLVMWindowsDriver
LLVMWindowsManifest)
endif()
if(${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "17.0")
list(APPEND LIBTOOLING_LIBS clangASTMatchers)
endif()
endif(MSVC)
if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0")
list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport)
else()
list(APPEND LIBTOOLING_LIBS
LLVMWindowsDriver
LLVMWindowsManifest)
endif()
if(${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "16.0")
list(APPEND LIBTOOLING_LIBS clangASTMatchers)
endif()
endif(LINK_LLVM_SHARED)
if("${LIBTOOLING_LIBS}" STREQUAL "")

View File

@@ -84,6 +84,8 @@ LLVM_CONFIG_PATH=/usr/bin/llvm-config-16 make release
# or directly specify the path where LLVMConfig.cmake can be found on your system, e.g.:
CMAKE_PREFIX=/usr/lib/llvm-16/lib/cmake/llvm make release
# By default clang-uml is linked against shared LLVM libraries, this can be changed using:
LLVM_SHARED=OFF LLVM_VERSION=16 make release
# Optionally, to install in default prefix
make install

View File

@@ -1,6 +1,6 @@
# This script assumes that all clang-uml dependencies are instaled in C:\clang-uml
param ($Prefix="C:\clang-uml", $BuildType="Release")
param ($Prefix="C:\clang-uml-llvm17", $BuildType="Release")
mkdir _BUILD

View File

@@ -253,12 +253,18 @@ std::vector<std::string> diagram::get_translation_units() const
LOG_DBG("Looking for translation units in {}", root_directory().string());
for (const auto &g : glob()) {
std::string glob_path =
fmt::format("{}/{}", root_directory().string(), g.c_str());
std::filesystem::path absolute_glob_path{g};
LOG_DBG("Searching glob path {}", glob_path);
#ifdef _MSC_VER
if (!absolute_glob_path.has_root_name())
#else
if (!absolute_glob_path.is_absolute())
#endif
absolute_glob_path = root_directory() / absolute_glob_path;
auto matches = glob::glob(glob_path, true, false);
LOG_DBG("Searching glob path {}", absolute_glob_path.string());
auto matches = glob::glob(absolute_glob_path.string(), true, false);
for (const auto &match : matches) {
const auto path =

View File

@@ -2,7 +2,7 @@ diagrams:
t00025_class:
type: class
glob:
- /t00025.cc
- t00025.cc
using_namespace: clanguml::t00025
include:
namespaces: