Skip to content

Commit 488c958

Browse files
committed
test cmake build
1 parent 4a6ae65 commit 488c958

File tree

12 files changed

+483
-480
lines changed

12 files changed

+483
-480
lines changed

.github/workflows/cmake.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ on:
99
- "src/**"
1010
- "tests/**"
1111
- "CMakeLists.txt"
12+
1213
pull_request:
13-
branches: [main-test]
14+
branches: [main]
1415
paths:
1516
- ".github/workflows/cmake.yml"
1617
- "include/**"
@@ -52,10 +53,9 @@ jobs:
5253
run: |
5354
cmake -B build -G Ninja \
5455
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
55-
-DCLICE_DEV_ENV=ON \
56+
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain.cmake \
5657
-DCLICE_ENABLE_TEST=ON \
5758
-DCLICE_CI_ENVIRONMENT=ON
58-
5959
cmake --build build
6060
6161
- name: Run tests

.github/workflows/xmake.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ on:
99
- "src/**"
1010
- "tests/**"
1111
- "xmake.lua"
12+
1213
pull_request:
13-
branches: [main]
14+
branches: [main-test]
1415
paths:
1516
- ".github/workflows/xmake.yml"
1617
- "include/**"

CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ if(CLICE_ENABLE_LTO)
2929
string(APPEND CMAKE_MODULE_LINKER_FLAGS " -flto=thin")
3030
endif()
3131

32+
33+
3234
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
3335
add_compile_options(-fsanitize=address)
3436

@@ -59,8 +61,6 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
5961
endif()
6062
endif()
6163

62-
63-
6464
if(APPLE)
6565
# https://conda-forge.org/docs/maintainer/knowledge_base/#newer-c-features-with-old-sdk
6666
string(APPEND CMAKE_CXX_FLAGS " -D_LIBCPP_DISABLE_AVAILABILITY=1")
@@ -78,6 +78,10 @@ if(CLICE_CI_ENVIRONMENT)
7878
target_compile_definitions(clice_options INTERFACE CLICE_CI_ENVIRONMENT=1)
7979
endif()
8080

81+
if(WIN32)
82+
target_link_libraries(clice_options INTERFACE version ntdll)
83+
endif()
84+
8185
if(WIN32)
8286
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
8387
target_link_options(clice_options INTERFACE

cmake/github.cmake

Lines changed: 0 additions & 57 deletions
This file was deleted.

cmake/llvm.cmake

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
include_guard()
2+
3+
function(setup_llvm LLVM_VERSION)
4+
find_package(Python3 COMPONENTS Interpreter REQUIRED)
5+
6+
set(LLVM_SETUP_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/.llvm/setup-llvm.json")
7+
set(LLVM_SETUP_SCRIPT "${PROJECT_SOURCE_DIR}/scripts/setup-llvm.py")
8+
set(LLVM_SETUP_ARGS
9+
"--version" "${LLVM_VERSION}"
10+
"--build-type" "${CMAKE_BUILD_TYPE}"
11+
"--binary-dir" "${CMAKE_CURRENT_BINARY_DIR}"
12+
"--manifest" "${PROJECT_SOURCE_DIR}/config/llvm-mainfist.json"
13+
"--output" "${LLVM_SETUP_OUTPUT}"
14+
)
15+
16+
if(CLICE_ENABLE_LTO)
17+
list(APPEND LLVM_SETUP_ARGS "--enable-lto")
18+
endif()
19+
20+
if(DEFINED LLVM_INSTALL_PATH AND NOT LLVM_INSTALL_PATH STREQUAL "")
21+
list(APPEND LLVM_SETUP_ARGS "--install-path" "${LLVM_INSTALL_PATH}")
22+
endif()
23+
24+
if(DEFINED CLICE_OFFLINE_BUILD AND CLICE_OFFLINE_BUILD)
25+
list(APPEND LLVM_SETUP_ARGS "--offline")
26+
endif()
27+
28+
execute_process(
29+
COMMAND "${Python3_EXECUTABLE}" "${LLVM_SETUP_SCRIPT}" ${LLVM_SETUP_ARGS}
30+
RESULT_VARIABLE LLVM_SETUP_RESULT
31+
COMMAND_ERROR_IS_FATAL ANY
32+
)
33+
34+
file(READ "${LLVM_SETUP_OUTPUT}" LLVM_SETUP_JSON)
35+
string(JSON LLVM_INSTALL_PATH GET "${LLVM_SETUP_JSON}" install_path)
36+
string(JSON LLVM_CMAKE_DIR GET "${LLVM_SETUP_JSON}" cmake_dir)
37+
set(LLVM_INSTALL_PATH "${LLVM_INSTALL_PATH}" CACHE PATH "Path to LLVM installation" FORCE)
38+
set(LLVM_CMAKE_DIR "${LLVM_CMAKE_DIR}" CACHE PATH "Path to LLVM CMake files" FORCE)
39+
40+
get_filename_component(LLVM_INSTALL_PATH "${LLVM_INSTALL_PATH}" ABSOLUTE)
41+
42+
if(NOT EXISTS "${LLVM_INSTALL_PATH}")
43+
message(FATAL_ERROR "Error: The specified LLVM_INSTALL_PATH does not exist: ${LLVM_INSTALL_PATH}")
44+
endif()
45+
46+
# set llvm include and lib path
47+
add_library(llvm-libs INTERFACE IMPORTED)
48+
49+
# add to include directories
50+
target_include_directories(llvm-libs INTERFACE "${LLVM_INSTALL_PATH}/include")
51+
52+
if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT WIN32)
53+
target_link_directories(llvm-libs INTERFACE "${LLVM_INSTALL_PATH}/lib")
54+
target_link_libraries(llvm-libs INTERFACE
55+
LLVMSupport
56+
LLVMFrontendOpenMP
57+
LLVMOption
58+
LLVMTargetParser
59+
clangAST
60+
clangASTMatchers
61+
clangBasic
62+
clangDriver
63+
clangFormat
64+
clangFrontend
65+
clangLex
66+
clangSema
67+
clangSerialization
68+
clangTidy
69+
clangTidyUtils
70+
clangTidyAndroidModule
71+
clangTidyAbseilModule
72+
clangTidyAlteraModule
73+
clangTidyBoostModule
74+
clangTidyBugproneModule
75+
clangTidyCERTModule
76+
clangTidyConcurrencyModule
77+
clangTidyCppCoreGuidelinesModule
78+
clangTidyDarwinModule
79+
clangTidyFuchsiaModule
80+
clangTidyGoogleModule
81+
clangTidyHICPPModule
82+
clangTidyLinuxKernelModule
83+
clangTidyLLVMModule
84+
clangTidyLLVMLibcModule
85+
clangTidyMiscModule
86+
clangTidyModernizeModule
87+
clangTidyObjCModule
88+
clangTidyOpenMPModule
89+
clangTidyPerformanceModule
90+
clangTidyPortabilityModule
91+
clangTidyReadabilityModule
92+
clangTidyZirconModule
93+
clangTooling
94+
clangToolingCore
95+
clangToolingInclusions
96+
clangToolingInclusionsStdlib
97+
clangToolingSyntax
98+
)
99+
else()
100+
file(GLOB LLVM_LIBRARIES CONFIGURE_DEPENDS "${LLVM_INSTALL_PATH}/lib/*${CMAKE_STATIC_LIBRARY_SUFFIX}")
101+
target_link_libraries(llvm-libs INTERFACE ${LLVM_LIBRARIES})
102+
target_compile_definitions(llvm-libs INTERFACE CLANG_BUILD_STATIC=1)
103+
endif()
104+
endfunction()

0 commit comments

Comments
 (0)