Skip to content

Commit 8fb4898

Browse files
authored
Merge pull request seqan#275 from eseiler/infra/cxx
[INFRA] Outsource cxx config
2 parents bee6431 + 14c5d36 commit 8fb4898

File tree

6 files changed

+33
-46
lines changed

6 files changed

+33
-46
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ if (NOT CMAKE_BUILD_TYPE)
2222
CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
2323
endif ()
2424

25+
include (cmake/cxx_config.cmake)
26+
2527
set (HIBF_HEADER_PATH "${HIBF_SOURCE_DIR}/include")
2628
include (cmake/configuration.cmake)
2729
add_subdirectory (src)

cmake/cxx_config.cmake

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# SPDX-FileCopyrightText: 2006-2025, Knut Reinert & Freie Universität Berlin
2+
# SPDX-FileCopyrightText: 2016-2025, Knut Reinert & MPI für molekulare Genetik
3+
# SPDX-License-Identifier: BSD-3-Clause
4+
5+
if (NOT DEFINED CMAKE_CXX_STANDARD)
6+
set (CMAKE_CXX_STANDARD 23)
7+
endif ()
8+
9+
if (NOT DEFINED CMAKE_CXX_STANDARD_REQUIRED)
10+
set (CMAKE_CXX_STANDARD_REQUIRED ON)
11+
endif ()
12+
13+
if (NOT DEFINED CMAKE_CXX_EXTENSIONS)
14+
set (CMAKE_CXX_EXTENSIONS OFF)
15+
endif ()
16+
17+
# LTO support.
18+
include (CheckIPOSupported)
19+
check_ipo_supported (
20+
RESULT HIBF_TEST_HAS_LTO
21+
OUTPUT HIBF_TEST_HAS_LTO_OUTPUT
22+
LANGUAGES CXX)
23+
if (HIBF_TEST_HAS_LTO)
24+
set (CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
25+
endif ()

cmake/package-lock.cmake

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ CPMDeclarePackage (googletest
3838
VERSION ${HIBF_GOOGLETEST_VERSION}
3939
GITHUB_REPOSITORY google/googletest
4040
SYSTEM TRUE
41-
OPTIONS "BUILD_GMOCK OFF" "INSTALL_GTEST OFF" "CMAKE_CXX_STANDARD 23"
42-
"CMAKE_MESSAGE_LOG_LEVEL WARNING")
41+
OPTIONS "BUILD_GMOCK OFF" "INSTALL_GTEST OFF" "CMAKE_MESSAGE_LOG_LEVEL WARNING")
4342
# doxygen-awesome
4443
set (HIBF_DOXYGEN_AWESOME_VERSION 2.3.4 CACHE STRING "" FORCE)
4544
CPMDeclarePackage (doxygen_awesome

test/hibf-test.cmake

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,10 @@ cmake_minimum_required (VERSION 3.20...3.31)
1313
# have to be adapted or the option deactivated.
1414
option (HIBF_BENCHMARK_ALIGN_LOOPS "Pass -falign-loops=32 to the benchmark builds." ON)
1515

16-
if (NOT DEFINED CMAKE_CXX_STANDARD)
17-
set (CMAKE_CXX_STANDARD 23)
18-
endif ()
19-
20-
if (NOT DEFINED CMAKE_CXX_STANDARD_REQUIRED)
21-
set (CMAKE_CXX_STANDARD_REQUIRED ON)
22-
endif ()
23-
24-
if (NOT DEFINED CMAKE_CXX_EXTENSIONS)
25-
set (CMAKE_CXX_EXTENSIONS OFF)
26-
endif ()
27-
28-
include (CheckIPOSupported)
29-
check_ipo_supported (
30-
RESULT HIBF_TEST_HAS_LTO
31-
OUTPUT HIBF_TEST_HAS_LTO_OUTPUT
32-
LANGUAGES CXX)
33-
if (HIBF_TEST_HAS_LTO)
34-
set (CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
35-
endif ()
36-
3716
get_filename_component (HIBF_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
3817

18+
include (${HIBF_ROOT_DIR}/cmake/cxx_config.cmake)
19+
3920
option (HIBF_POST_INSTALL_TEST "Tests should use installed library." OFF)
4021
if (HIBF_POST_INSTALL_TEST)
4122
find_package (hibf CONFIG REQUIRED)

test/tutorial/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ include (../hibf-test.cmake)
1313
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
1414

1515
CPMAddPackage (NAME seqan3
16-
GIT_TAG 9a07fdb5283aad0b05301905bddb2d8253f5e067
16+
GIT_TAG main
1717
GITHUB_REPOSITORY seqan/seqan3
1818
SYSTEM TRUE
1919
EXCLUDE_FROM_ALL TRUE
2020
OPTIONS "INSTALL_SEQAN3 OFF" "CMAKE_MESSAGE_LOG_LEVEL WARNING")
2121

2222
CPMAddPackage (NAME sharg
23-
GIT_TAG da92d2314e9fedba0e1d9d317b5977360dae8ac9
23+
GIT_TAG main
2424
GITHUB_REPOSITORY seqan/sharg-parser
2525
SYSTEM TRUE
2626
EXCLUDE_FROM_ALL TRUE

util/CMakeLists.txt

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,9 @@
55
cmake_minimum_required (VERSION 3.20...3.31)
66
project (hibf_util CXX)
77

8-
include (CheckIPOSupported)
9-
check_ipo_supported (
10-
RESULT HIBF_TEST_HAS_LTO
11-
OUTPUT HIBF_TEST_HAS_LTO_OUTPUT
12-
LANGUAGES CXX)
13-
if (HIBF_TEST_HAS_LTO)
14-
set (CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
15-
endif ()
16-
17-
if (NOT DEFINED CMAKE_CXX_STANDARD)
18-
set (CMAKE_CXX_STANDARD 23)
19-
endif ()
20-
21-
if (NOT DEFINED CMAKE_CXX_STANDARD_REQUIRED)
22-
set (CMAKE_CXX_STANDARD_REQUIRED ON)
23-
endif ()
24-
25-
if (NOT DEFINED CMAKE_CXX_EXTENSIONS)
26-
set (CMAKE_CXX_EXTENSIONS OFF)
27-
endif ()
28-
298
# Dependency: seqan::hibf
309
get_filename_component (HIBF_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
10+
include (${HIBF_ROOT_DIR}/cmake/cxx_config.cmake)
3111
add_subdirectory ("${HIBF_ROOT_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/hibf_lib")
3212

3313
# Dependency: Sharg

0 commit comments

Comments
 (0)