Skip to content

Commit 342f100

Browse files
authored
Merge pull request #807 from lukaszstolarczuk/ext-cmake
Update top-level CMake
2 parents 21aaf94 + 00131b8 commit 342f100

File tree

2 files changed

+28
-26
lines changed

2 files changed

+28
-26
lines changed

CMakeLists.txt

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,24 @@ if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
1818
set(CMAKE_FIND_FRAMEWORK NEVER)
1919
endif()
2020

21-
find_package(Python3 COMPONENTS Interpreter)
21+
find_package(Python3 COMPONENTS Interpreter REQUIRED)
2222

2323
set(CMAKE_CXX_STANDARD 17)
2424
set(CMAKE_CXX_STANDARD_REQUIRED YES)
2525

2626
# Build Options
27-
option(UR_DEVELOPER_MODE "enable developer checks, treats warnings as errors" OFF)
2827
option(UR_BUILD_TESTS "Build unit tests." ON)
28+
option(UR_BUILD_TOOLS "build ur tools" ON)
2929
option(UR_FORMAT_CPP_STYLE "format code style of C++ sources" OFF)
30+
option(UR_DEVELOPER_MODE "enable developer checks, treats warnings as errors" OFF)
3031
option(UR_USE_ASAN "enable AddressSanitizer" OFF)
3132
option(UR_USE_UBSAN "enable UndefinedBehaviorSanitizer" OFF)
3233
option(UR_USE_MSAN "enable MemorySanitizer" OFF)
3334
option(UR_USE_TSAN "enable ThreadSanitizer" OFF)
34-
option(UMF_BUILD_SHARED_LIBRARY "Build UMF as shared library" OFF)
3535
option(UR_ENABLE_TRACING "enable api tracing through xpti" OFF)
36-
option(VAL_USE_LIBBACKTRACE_BACKTRACE "enable libbacktrace validation backtrace for linux" OFF)
37-
option(UR_BUILD_TOOLS "build ur tools" ON)
36+
option(UMF_BUILD_SHARED_LIBRARY "Build UMF as shared library" OFF)
3837
option(UMF_ENABLE_POOL_TRACKING "Build UMF with pool tracking" OFF)
38+
option(VAL_USE_LIBBACKTRACE_BACKTRACE "enable libbacktrace validation backtrace for linux" OFF)
3939

4040
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
4141
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
@@ -130,23 +130,15 @@ if(UR_USE_MSAN)
130130
add_sanitizer_flag(memory)
131131
endif()
132132

133-
# Allow custom third_party folder
134-
if(NOT DEFINED THIRD_PARTY_DIR)
135-
set(THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party)
136-
endif()
137-
138-
find_program(CLANG_FORMAT NAMES clang-format-15 clang-format-15.0 clang-format)
139-
140-
set(CLANG_FORMAT_REQUIRED "15.0")
133+
# Check if clang-format (in correct version) is available for Cpp code formatting.
134+
if(UR_FORMAT_CPP_STYLE)
135+
find_program(CLANG_FORMAT NAMES clang-format-15 clang-format-15.0 clang-format)
141136

142-
if(CLANG_FORMAT)
143-
get_program_version_major_minor(${CLANG_FORMAT} CLANG_FORMAT_VERSION)
144-
message(STATUS "Found clang-format: ${CLANG_FORMAT} (version: ${CLANG_FORMAT_VERSION})")
145-
endif()
137+
if(CLANG_FORMAT)
138+
get_program_version_major_minor(${CLANG_FORMAT} CLANG_FORMAT_VERSION)
139+
message(STATUS "Found clang-format: ${CLANG_FORMAT} (version: ${CLANG_FORMAT_VERSION})")
146140

147-
# Check if the correct version of clang-format is available
148-
if(UR_FORMAT_CPP_STYLE)
149-
if(CLANG_FORMAT)
141+
set(CLANG_FORMAT_REQUIRED "15.0")
150142
if(NOT (CLANG_FORMAT_VERSION VERSION_EQUAL CLANG_FORMAT_REQUIRED))
151143
message(FATAL_ERROR "required clang-format version is ${CLANG_FORMAT_REQUIRED}")
152144
endif()
@@ -155,7 +147,7 @@ if(UR_FORMAT_CPP_STYLE)
155147
endif()
156148
endif()
157149

158-
# Obtain files for clang-format
150+
# Obtain files for clang-format and license check
159151
set(format_glob)
160152
set(license_glob)
161153
foreach(dir examples include source test tools)
@@ -180,7 +172,7 @@ endforeach()
180172
file(GLOB_RECURSE format_src ${format_glob})
181173
file(GLOB_RECURSE license_src ${license_glob})
182174

183-
# check for licence
175+
# Add license check target
184176
list(FILTER license_src EXCLUDE REGEX "registry.yml")
185177
add_custom_target(verify-licenses
186178
COMMAND ${Python3_EXECUTABLE}
@@ -191,9 +183,13 @@ add_custom_target(verify-licenses
191183

192184
# Add code formatter target
193185
add_custom_target(cppformat)
186+
# ... and all source files to the formatter
187+
add_cppformat(all-sources ${format_src})
194188

195-
# Add files to the formatter
196-
add_cppformat(src-formatter ${format_src})
189+
# Allow custom third_party folder
190+
if(NOT DEFINED THIRD_PARTY_DIR)
191+
set(THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party)
192+
endif()
197193

198194
add_subdirectory(${THIRD_PARTY_DIR})
199195

@@ -273,5 +269,5 @@ if(UR_FORMAT_CPP_STYLE)
273269
DEPENDS generate
274270
)
275271
else()
276-
message(WARNING "UR_FORMAT_CPP_STYLE not set. Targets: 'generate' and 'check-generated' and not available")
272+
message(STATUS " UR_FORMAT_CPP_STYLE not set. Targets: 'generate' and 'check-generated' are not available")
277273
endif()

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
- [Weekly tags](#weekly-tags)
1515
3. [Third-Party tools](#third-party-tools)
1616
4. [Building](#building)
17+
- [Requirements](#requirements)
1718
- [Windows](#windows)
1819
- [Linux](#linux)
1920
- [CMake standard options](#cmake-standard-options)
@@ -71,9 +72,14 @@ Tools can be acquired via instructions in [third_party](/third_party/README.md).
7172

7273
## Building
7374

74-
Requirements:
75+
### Requirements
76+
77+
Required packages:
7578
- C++ compiler with C++17 support
7679
- [CMake](https://cmake.org/) >= 3.14.0
80+
- Python v3.6.6 or later
81+
82+
For development and contributions:
7783
- clang-format-15.0 (can be installed with `python -m pip install clang-format==15.0.7`)
7884

7985
### Windows

0 commit comments

Comments
 (0)