Skip to content

Commit 1257bcd

Browse files
authored
Revise CMake utilities, folders, and tests (#1503)
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
1 parent ddad44e commit 1257bcd

File tree

23 files changed

+21
-43
lines changed

23 files changed

+21
-43
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ lint: .always
3131
test: .always
3232
$(CMAKE) -E env UBSAN_OPTIONS=print_stacktrace=1 \
3333
$(CTEST) --test-dir ./build --build-config $(PRESET) \
34-
--output-on-failure --progress --parallel
34+
--output-on-failure --parallel
3535

3636
benchmark: .always
3737
$(CMAKE) --build ./build --config $(PRESET) --target benchmark_all

benchmark/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ endif()
1414

1515
if(BENCHMARK_SOURCES)
1616
sourcemeta_googlebenchmark(NAMESPACE sourcemeta PROJECT core
17-
FOLDER "Core" SOURCES ${BENCHMARK_SOURCES})
17+
SOURCES ${BENCHMARK_SOURCES})
1818

1919
target_compile_definitions(sourcemeta_core_benchmark
2020
PRIVATE CURRENT_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}")

cmake/common/targets/executable.cmake

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
11
function(sourcemeta_executable)
22
cmake_parse_arguments(SOURCEMETA_EXECUTABLE ""
3-
"NAMESPACE;PROJECT;NAME;FOLDER;VARIANT;OUTPUT" "SOURCES" ${ARGN})
3+
"NAMESPACE;PROJECT;NAME;VARIANT;OUTPUT" "SOURCES" ${ARGN})
44

55
if(NOT SOURCEMETA_EXECUTABLE_PROJECT)
66
message(FATAL_ERROR "You must pass the project name using the PROJECT option")
77
endif()
88
if(NOT SOURCEMETA_EXECUTABLE_NAME)
99
message(FATAL_ERROR "You must pass the executable name using the NAME option")
1010
endif()
11-
if(NOT SOURCEMETA_EXECUTABLE_FOLDER)
12-
message(FATAL_ERROR "You must pass the folder name using the FOLDER option")
13-
endif()
1411
if(NOT SOURCEMETA_EXECUTABLE_SOURCES)
1512
message(FATAL_ERROR "You must pass the sources list using the SOURCES option")
1613
endif()
1714

1815
if(SOURCEMETA_EXECUTABLE_NAMESPACE)
1916
set(TARGET_NAME "${SOURCEMETA_EXECUTABLE_NAMESPACE}_${SOURCEMETA_EXECUTABLE_PROJECT}_${SOURCEMETA_EXECUTABLE_NAME}")
17+
set(FOLDER_NAME "${SOURCEMETA_EXECUTABLE_NAMESPACE}/${SOURCEMETA_EXECUTABLE_PROJECT}/${SOURCEMETA_EXECUTABLE_NAME}")
2018
else()
2119
set(TARGET_NAME "${SOURCEMETA_EXECUTABLE_PROJECT}_${SOURCEMETA_EXECUTABLE_NAME}")
20+
set(FOLDER_NAME "${SOURCEMETA_EXECUTABLE_PROJECT}/${SOURCEMETA_EXECUTABLE_NAME}")
2221
endif()
2322

2423
if(SOURCEMETA_EXECUTABLE_VARIANT)
@@ -31,5 +30,5 @@ function(sourcemeta_executable)
3130

3231
add_executable("${TARGET_NAME}" ${SOURCEMETA_EXECUTABLE_SOURCES})
3332
sourcemeta_add_default_options(PRIVATE ${TARGET_NAME})
34-
set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${SOURCEMETA_EXECUTABLE_FOLDER}")
33+
set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${FOLDER_NAME}")
3534
endfunction()
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
function(sourcemeta_googlebenchmark)
22
cmake_parse_arguments(SOURCEMETA_GOOGLEBENCHMARK ""
3-
"NAMESPACE;PROJECT;FOLDER" "SOURCES" ${ARGN})
3+
"NAMESPACE;PROJECT" "SOURCES" ${ARGN})
44

55
if(NOT SOURCEMETA_GOOGLEBENCHMARK_PROJECT)
66
message(FATAL_ERROR "You must pass the project name using the PROJECT option")
77
endif()
8-
if(NOT SOURCEMETA_GOOGLEBENCHMARK_FOLDER)
9-
message(FATAL_ERROR "You must pass the folder name using the FOLDER option")
10-
endif()
118
if(NOT SOURCEMETA_GOOGLEBENCHMARK_SOURCES)
129
message(FATAL_ERROR "You must pass the sources list using the SOURCES option")
1310
endif()
1411

1512
if(SOURCEMETA_GOOGLEBENCHMARK_NAMESPACE)
1613
set(TARGET_NAME "${SOURCEMETA_GOOGLEBENCHMARK_NAMESPACE}_${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}_benchmark")
14+
set(FOLDER_NAME "${SOURCEMETA_GOOGLEBENCHMARK_NAMESPACE}/${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}")
1715
else()
1816
set(TARGET_NAME "${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}_benchmark")
17+
set(FOLDER_NAME "${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}")
1918
endif()
2019

2120
add_executable("${TARGET_NAME}" ${SOURCEMETA_GOOGLEBENCHMARK_SOURCES})
2221
sourcemeta_add_default_options(PRIVATE ${TARGET_NAME})
23-
set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${SOURCEMETA_GOOGLEBENCHMARK_FOLDER}")
22+
set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${FOLDER_NAME}")
2423
target_link_libraries("${TARGET_NAME}" PRIVATE benchmark::benchmark)
2524
target_link_libraries("${TARGET_NAME}" PRIVATE benchmark::benchmark_main)
2625
endfunction()

cmake/common/targets/googletest.cmake

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
function(sourcemeta_googletest)
22
cmake_parse_arguments(SOURCEMETA_GOOGLETEST ""
3-
"NAMESPACE;PROJECT;NAME;FOLDER;VARIANT" "SOURCES" ${ARGN})
3+
"NAMESPACE;PROJECT;NAME;VARIANT" "SOURCES" ${ARGN})
44

55
if(SOURCEMETA_GOOGLETEST_VARIANT)
66
set(TARGET_VARIANT "${SOURCEMETA_GOOGLETEST_VARIANT}_unit")
@@ -12,7 +12,6 @@ function(sourcemeta_googletest)
1212
NAMESPACE "${SOURCEMETA_GOOGLETEST_NAMESPACE}"
1313
PROJECT "${SOURCEMETA_GOOGLETEST_PROJECT}"
1414
NAME "${SOURCEMETA_GOOGLETEST_NAME}"
15-
FOLDER "${SOURCEMETA_GOOGLETEST_FOLDER}"
1615
VARIANT "${TARGET_VARIANT}"
1716
SOURCES "${SOURCEMETA_GOOGLETEST_SOURCES}"
1817
OUTPUT TARGET_NAME)

cmake/common/targets/library.cmake

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
function(sourcemeta_library)
22
cmake_parse_arguments(SOURCEMETA_LIBRARY ""
3-
"NAMESPACE;PROJECT;NAME;FOLDER;VARIANT" "PRIVATE_HEADERS;SOURCES" ${ARGN})
3+
"NAMESPACE;PROJECT;NAME;VARIANT" "PRIVATE_HEADERS;SOURCES" ${ARGN})
44

55
if(NOT SOURCEMETA_LIBRARY_PROJECT)
66
message(FATAL_ERROR "You must pass the project name using the PROJECT option")
77
endif()
88
if(NOT SOURCEMETA_LIBRARY_NAME)
99
message(FATAL_ERROR "You must pass the library name using the NAME option")
1010
endif()
11-
if(NOT SOURCEMETA_LIBRARY_FOLDER)
12-
message(FATAL_ERROR "You must pass the folder name using the FOLDER option")
13-
endif()
1411

1512
if(SOURCEMETA_LIBRARY_NAMESPACE)
1613
set(INCLUDE_PREFIX "include/${SOURCEMETA_LIBRARY_NAMESPACE}/${SOURCEMETA_LIBRARY_PROJECT}")
@@ -42,9 +39,11 @@ function(sourcemeta_library)
4239
if(SOURCEMETA_LIBRARY_NAMESPACE)
4340
set(TARGET_NAME "${SOURCEMETA_LIBRARY_NAMESPACE}_${SOURCEMETA_LIBRARY_PROJECT}_${SOURCEMETA_LIBRARY_NAME}")
4441
set(ALIAS_NAME "${SOURCEMETA_LIBRARY_NAMESPACE}::${SOURCEMETA_LIBRARY_PROJECT}::${SOURCEMETA_LIBRARY_NAME}")
42+
set(FOLDER_NAME "${SOURCEMETA_LIBRARY_NAMESPACE}/${SOURCEMETA_LIBRARY_PROJECT}/${SOURCEMETA_LIBRARY_NAME}")
4543
else()
4644
set(TARGET_NAME "${SOURCEMETA_LIBRARY_PROJECT}_${SOURCEMETA_LIBRARY_NAME}")
4745
set(ALIAS_NAME "${SOURCEMETA_LIBRARY_PROJECT}::${SOURCEMETA_LIBRARY_NAME}")
46+
set(FOLDER_NAME "${SOURCEMETA_LIBRARY_PROJECT}/${SOURCEMETA_LIBRARY_NAME}")
4847
endif()
4948

5049
if(SOURCEMETA_LIBRARY_VARIANT)
@@ -92,15 +91,15 @@ function(sourcemeta_library)
9291
PUBLIC_HEADER "${PUBLIC_HEADER}"
9392
PRIVATE_HEADER "${ABSOLUTE_PRIVATE_HEADERS}"
9493
EXPORT_NAME "${export_name}"
95-
FOLDER "${SOURCEMETA_LIBRARY_FOLDER}")
94+
FOLDER "${FOLDER_NAME}")
9695
else()
9796
set_target_properties(${TARGET_NAME}
9897
PROPERTIES
9998
OUTPUT_NAME ${TARGET_NAME}
10099
PUBLIC_HEADER "${PUBLIC_HEADER}"
101100
PRIVATE_HEADER "${ABSOLUTE_PRIVATE_HEADERS}"
102101
EXPORT_NAME "${export_name}"
103-
FOLDER "${SOURCEMETA_LIBRARY_FOLDER}")
102+
FOLDER "${FOLDER_NAME}")
104103
endif()
105104

106105
if(SOURCEMETA_LIBRARY_SOURCES)

src/core/json/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME json
2-
FOLDER "Core/JSON"
32
PRIVATE_HEADERS array.h error.h object.h value.h hash.h
43
SOURCES grammar.h parser.h stringify.h json.cc json_value.cc)
54

src/core/jsonl/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME jsonl
2-
FOLDER "Core/JSONL"
32
PRIVATE_HEADERS iterator.h
43
SOURCES jsonl.cc iterator.cc grammar.h)
54

src/core/jsonpointer/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME jsonpointer
2-
FOLDER "Core/JSON Pointer"
32
PRIVATE_HEADERS pointer.h position.h error.h token.h
43
walker.h subpointer_walker.h proxy.h
54
SOURCES jsonpointer.cc stringify.h parser.h grammar.h position.cc)

src/core/jsonschema/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ set(OFFICIAL_RESOLVER_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/official_resolver.cc")
33
include(./official_resolver.cmake)
44

55
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME jsonschema
6-
FOLDER "Core/JSON Schema"
76
PRIVATE_HEADERS bundle.h resolver.h
87
walker.h frame.h error.h unevaluated.h
98
keywords.h transform.h

src/core/regex/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME regex
2-
FOLDER "Core/Regex")
1+
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME regex)
32

43
if(SOURCEMETA_CORE_INSTALL)
54
sourcemeta_library_install(NAMESPACE sourcemeta PROJECT core NAME regex)

src/core/uri/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME uri
2-
FOLDER "Core/URI"
32
PRIVATE_HEADERS error.h
43
SOURCES uri.cc escaping.cc)
54

src/core/yaml/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME yaml
2-
FOLDER "Core/YAML"
32
PRIVATE_HEADERS error.h
43
SOURCES yaml.cc)
54

src/extension/alterschema/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME alterschema
2-
FOLDER "Core/AlterSchema"
32
SOURCES alterschema.cc
43
# Antipattern
54
antipattern/const_with_type.h

test/alterschema/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME alterschema
2-
FOLDER "Core/AlterSchema"
32
SOURCES
43
alterschema_lint_2020_12_test.cc
54
alterschema_lint_2019_09_test.cc

test/json/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME json
2-
FOLDER "Core/JSON"
32
SOURCES
43
json_array_test.cc
54
json_boolean_test.cc
@@ -27,7 +26,6 @@ target_compile_definitions(sourcemeta_core_json_unit
2726
# JSON Test Suite
2827
# See https://github.com/nst/JSONTestSuite
2928
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsontestsuite
30-
FOLDER "Core/JSON"
3129
SOURCES jsontestsuite.cc)
3230
target_compile_definitions(sourcemeta_core_jsontestsuite_unit
3331
PRIVATE JSONTESTSUITE_PATH="${PROJECT_SOURCE_DIR}/vendor/jsontestsuite")

test/jsonl/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsonl
2-
FOLDER "Core/JSONL"
32
SOURCES
43
jsonl_parse_test.cc
54
jsonl_parse_error_test.cc)

test/jsonpointer/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsonpointer
2-
FOLDER "Core/JSON Pointer"
32
SOURCES
43
jsonpointer_empty_pointer_test.cc
54
jsonpointer_get_test.cc

test/jsonschema/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsonschema
2-
FOLDER "Core/JSON Schema"
32
SOURCES
43
jsonschema_test_utils.h
54
jsonschema_identify_2020_12_test.cc
@@ -102,7 +101,6 @@ target_compile_definitions(sourcemeta_core_jsonschema_unit
102101
# JSON Schema Referencing Suite
103102
# See https://github.com/python-jsonschema/referencing-suite
104103
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsonschema_referencing_suite
105-
FOLDER "Core/JSON Schema"
106104
SOURCES referencingsuite.cc)
107105
target_compile_definitions(sourcemeta_core_jsonschema_referencing_suite_unit
108106
PRIVATE REFERENCING_SUITE_PATH="${PROJECT_SOURCE_DIR}/vendor/referencing-suite/tests")

test/packaging/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# TODO: Get install path from a variable?
2-
add_test(NAME packaging.find_package_configure COMMAND
2+
add_test(NAME ${PROJECT_NAME}.find_package_configure COMMAND
33
"${CMAKE_COMMAND}"
44
-S "${CMAKE_CURRENT_SOURCE_DIR}/find_package"
55
-B "${CMAKE_CURRENT_BINARY_DIR}/find_package"
66
"-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
77
"-DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH};${PROJECT_SOURCE_DIR}/build/dist"
88
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}")
9-
add_test(NAME packaging.find_package_build COMMAND
9+
add_test(NAME ${PROJECT_NAME}.find_package_build COMMAND
1010
"${CMAKE_COMMAND}"
1111
--build "${CMAKE_CURRENT_BINARY_DIR}/find_package"
1212
--config "${CMAKE_BUILD_TYPE}")
13-
set_tests_properties(packaging.find_package_build
14-
PROPERTIES DEPENDS packaging.find_package_configure)
13+
set_tests_properties(${PROJECT_NAME}.find_package_build
14+
PROPERTIES DEPENDS ${PROJECT_NAME}.find_package_configure)

test/regex/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME regex
2-
FOLDER "Core/Regex"
32
SOURCES regex_matches_test.cc regex_to_regex_test.cc)
43

54
target_link_libraries(sourcemeta_core_regex_unit

test/uri/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME uri
2-
FOLDER "Core/URI"
32
SOURCES
43
uri_test.cc
54
uri_fragment_test.cc

test/yaml/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME yaml
2-
FOLDER "Core/YAML"
32
SOURCES
43
yaml_parse_test.cc)
54

0 commit comments

Comments
 (0)