Skip to content

Commit cff7555

Browse files
authored
use googletest with CPM (#56)
* use googletest with CPM * fix ubsan
1 parent 136dae5 commit cff7555

17 files changed

+1695
-477
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,7 @@
3434
.fleet
3535
build
3636
.cache
37+
38+
singleheader/ada_idna.cpp
39+
singleheader/ada_idna.h
40+
singleheader/singleheader.zip

CMakeLists.txt

+43-13
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,31 @@ cmake_minimum_required(VERSION 3.16)
33
project(ada-idna
44
DESCRIPTION "IDNA"
55
LANGUAGES C CXX
6-
VERSION 0.1.0
6+
VERSION 0.2.0
77
)
8+
set(ADA_IDNA_LIB_VERSION "0.2.0" CACHE STRING "ada-idna library version")
9+
set(ADA_IDNA_LIB_SOVERSION "0" CACHE STRING "ada-idna library soversion")
810

911
include(GNUInstallDirs)
10-
1112
include(CTest)
1213
include(cmake/idna-flags.cmake)
1314

1415
add_subdirectory(src)
1516

16-
include(cmake/clang-format.cmake)
17-
18-
option(ADA_IDNA_BENCHMARKS "Build benchmarks" OFF)
19-
2017
if(ADA_IDNA_BENCHMARKS OR BUILD_TESTING)
21-
include(${PROJECT_SOURCE_DIR}/cmake/import.cmake)
22-
import_dependency(simdjson simdjson/simdjson 0a3a00c95665cc1fda760e121ba8d442945ede13)
23-
add_dependency(simdjson)
18+
include(cmake/CPM.cmake)
2419
endif()
2520

2621
if (ADA_IDNA_BENCHMARKS)
2722
message(STATUS "Ada benchmarks enabled.")
23+
CPMAddPackage(
24+
NAME benchmark
25+
GITHUB_REPOSITORY google/benchmark
26+
VERSION 1.9.0
27+
OPTIONS "BENCHMARK_ENABLE_TESTING OFF"
28+
"BENCHMARK_ENABLE_INSTALL OFF"
29+
"BENCHMARK_ENABLE_WERROR OFF"
30+
)
2831
add_subdirectory(benchmarks)
2932
else(ADA_IDNA_BENCHMARKS)
3033
if (is_top_project)
@@ -34,6 +37,13 @@ endif()
3437

3538
if (BUILD_TESTING)
3639
message(STATUS "The tests are enabled.")
40+
CPMAddPackage(
41+
NAME GTest
42+
GITHUB_REPOSITORY google/googletest
43+
VERSION 1.15.2
44+
OPTIONS "BUILD_GMOCK OFF" "INSTALL_GTEST OFF"
45+
)
46+
CPMAddPackage("gh:simdjson/simdjson@3.10.1")
3747
add_subdirectory(tests)
3848
else()
3949
if(is_top_project)
@@ -43,13 +53,33 @@ endif(BUILD_TESTING)
4353

4454
add_subdirectory(singleheader)
4555

56+
add_library(ada-idna::ada-idna ALIAS ada-idna)
57+
58+
set_target_properties(
59+
ada-idna PROPERTIES
60+
VERSION "${ADA_IDNA_LIB_VERSION}"
61+
SOVERSION "${ADA_IDNA_LIB_SOVERSION}"
62+
WINDOWS_EXPORT_ALL_SYMBOLS YES
63+
)
64+
65+
install(
66+
FILES include/idna.h
67+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
68+
COMPONENT ada-idna_development
69+
)
4670

4771
install(
48-
FILES include/idna.h
49-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
72+
DIRECTORY include/ada
73+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
74+
COMPONENT ada-idna_development
5075
)
5176

5277
install(
53-
DIRECTORY include/ada
54-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
78+
TARGETS ada-idna
79+
EXPORT ada-idna_targets
80+
RUNTIME COMPONENT ada-idna_runtime
81+
LIBRARY COMPONENT ada-idna_runtime
82+
NAMELINK_COMPONENT ada-idna_development
83+
ARCHIVE COMPONENT ada-idna_development
84+
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
5585
)

0 commit comments

Comments
 (0)