Skip to content
This repository was archived by the owner on Mar 22, 2023. It is now read-only.

Commit 515f097

Browse files
authored
Merge pull request #1044 from lukaszstolarczuk/change-default-build-type
Update cmake_build_type handling and switch default to RelWithDebInfo
2 parents 2979a95 + 003a6e0 commit 515f097

5 files changed

Lines changed: 63 additions & 40 deletions

File tree

.github/workflows/gha.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ jobs:
141141
run: cmake . -Bbuild
142142
-G "${env:GENERATOR}"
143143
-A "${env:ARCH}"
144+
-DCMAKE_BUILD_TYPE="${{ matrix.CONFIG }}"
144145
-DCMAKE_TOOLCHAIN_FILE="${env:CMAKE_TOOLCHAIN_FILE}"
145146
-DCMAKE_INSTALL_PREFIX="${env:CMAKE_INSTALL_PREFIX}"
146147
-DTESTS_USE_FORCED_PMEM=ON

CMakeLists.txt

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,23 @@ set(CMAKE_NO_SYSTEM_FROM_IMPORTED 1)
4040
set(TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/test CACHE STRING "working directory for tests")
4141
message(STATUS "TEST_DIR set to: \"${TEST_DIR}\"")
4242

43+
# Specify and print the build type
44+
set(DEFAULT_BUILD_TYPE "RelWithDebInfo")
45+
set(predefined_build_types
46+
Debug
47+
Release
48+
RelWithDebInfo
49+
MinSizeRel)
4350
if(NOT CMAKE_BUILD_TYPE)
44-
set(CMAKE_BUILD_TYPE "Debug")
51+
message(STATUS "CMAKE_BUILD_TYPE not set, setting the default one: ${DEFAULT_BUILD_TYPE}")
52+
set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}"
53+
CACHE STRING "choose the type of build (${predefined_build_types})" FORCE STRINGS)
54+
else()
55+
message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
56+
if(NOT CMAKE_BUILD_TYPE IN_LIST predefined_build_types)
57+
message(WARNING "Unusual build type was set, please make sure it's proper one. "
58+
"By default supported are only following: ${predefined_build_types}.")
59+
endif()
4560
endif()
4661

4762
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LIBPMEMOBJCPP_ROOT_DIR}/cmake)
@@ -54,13 +69,13 @@ option(BUILD_TESTS "build tests" ON)
5469
option(BUILD_DOC "build documentation" ON)
5570
option(BUILD_BENCHMARKS "build benchmarks" ON)
5671

57-
option(COVERAGE "run coverage test" OFF)
72+
option(COVERAGE "enable collecting of coverage data" OFF)
5873
option(DEVELOPER_MODE "enable developer checks" OFF)
5974
option(CHECK_CPP_STYLE "check code style of C++ sources" OFF)
6075
option(TRACE_TESTS "more verbose test outputs" OFF)
6176
option(USE_ASAN "enable AddressSanitizer (debugging)" OFF)
6277
option(USE_UBSAN "enable UndefinedBehaviorSanitizer (debugging)" OFF)
63-
option(USE_CCACHE "Use ccache if it is available in the system" ON)
78+
option(USE_CCACHE "use ccache if it is available in the system" ON)
6479

6580
option(TESTS_USE_FORCED_PMEM "run tests with PMEM_IS_PMEM_FORCE=1 - it speeds up tests execution on emulated pmem" OFF)
6681
option(TESTS_USE_VALGRIND "enable tests with valgrind (fail build if Valgrind not found)" ON)

ChangeLog

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ XXX Igor Chorążewicz <igor.chorazewicz@intel.com>
99
-
1010

1111
Other changes:
12+
- Switched default CMake's build type from "Debug" to "RelWithDebInfo"
13+
it's relevant for a GitHub users (who may e.g. run some benchmarks)
1214
-
1315

1416
Mon Feb 15 2021 Igor Chorążewicz <igor.chorazewicz@intel.com>

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ You will need the following packages for compilation:
8686
```
8787
$ mkdir build
8888
$ cd build
89-
$ cmake .. [-DCMAKE_INSTALL_PREFIX=<path_to_installation_dir>]
89+
$ cmake .. [-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<path_to_installation_dir>]
9090
$ make
9191
# make install
9292
```

tests/external/CMakeLists.txt

Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# SPDX-License-Identifier: BSD-3-Clause
2-
# Copyright 2018-2020, Intel Corporation
2+
# Copyright 2018-2021, Intel Corporation
33

44
include(../ctest_helpers.cmake)
55

@@ -804,60 +804,65 @@ if (TEST_STRING)
804804
build_test(string_libcxx_string_view_compare_pointer_size libcxx/string.view/string.view.ops/compare.pointer_size.pass.cpp)
805805
add_test_generic(NAME string_libcxx_string_view_compare_pointer_size TRACERS none pmemcheck memcheck)
806806

807-
if(MSVC_VERSION GREATER 1919)
807+
# On Windows only run for new MSVC compiler
808+
if(NOT WIN32 OR MSVC_VERSION GREATER 1919)
808809
build_test(string_libcxx_string_view_opeq_string_view libcxx/string.view/string.view.comparison/opeq.string_view.string_view.pass.cpp)
809810
add_test_generic(NAME string_libcxx_string_view_opeq_string_view TRACERS none pmemcheck memcheck)
810811

811-
build_test(string_libcxx_string_view_opeq_pointer libcxx/string.view/string.view.comparison/opeq.string_view.pointer.pass.cpp)
812-
add_test_generic(NAME string_libcxx_string_view_opeq_pointer TRACERS none pmemcheck memcheck)
812+
# Due to LNK1179 error (in Windows' Release builds) we want to run these tests
813+
# only with std::string_view (not ours implementation; available in C++17)
814+
if (NOT WIN32 OR "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" OR CXX_STANDARD GREATER 14)
815+
build_test(string_libcxx_string_view_opeq_pointer libcxx/string.view/string.view.comparison/opeq.string_view.pointer.pass.cpp)
816+
add_test_generic(NAME string_libcxx_string_view_opeq_pointer TRACERS none pmemcheck memcheck)
813817

814-
build_test(string_libcxx_string_view_opeq_string libcxx/string.view/string.view.comparison/opeq.string_view.string.pass.cpp)
815-
add_test_generic(NAME string_libcxx_string_view_opeq_string TRACERS none pmemcheck memcheck)
818+
build_test(string_libcxx_string_view_opeq_string libcxx/string.view/string.view.comparison/opeq.string_view.string.pass.cpp)
819+
add_test_generic(NAME string_libcxx_string_view_opeq_string TRACERS none pmemcheck memcheck)
816820

817-
build_test(string_libcxx_string_view_opge_string_view libcxx/string.view/string.view.comparison/opge.string_view.string_view.pass.cpp)
818-
add_test_generic(NAME string_libcxx_string_view_opge_string_view TRACERS none pmemcheck memcheck)
821+
build_test(string_libcxx_string_view_opge_pointer libcxx/string.view/string.view.comparison/opge.string_view.pointer.pass.cpp)
822+
add_test_generic(NAME string_libcxx_string_view_opge_pointer TRACERS none pmemcheck memcheck)
819823

820-
build_test(string_libcxx_string_view_opge_pointer libcxx/string.view/string.view.comparison/opge.string_view.pointer.pass.cpp)
821-
add_test_generic(NAME string_libcxx_string_view_opge_pointer TRACERS none pmemcheck memcheck)
824+
build_test(string_libcxx_string_view_opge_string libcxx/string.view/string.view.comparison/opge.string_view.string.pass.cpp)
825+
add_test_generic(NAME string_libcxx_string_view_opge_string TRACERS none pmemcheck memcheck)
822826

823-
build_test(string_libcxx_string_view_opge_string libcxx/string.view/string.view.comparison/opge.string_view.string.pass.cpp)
824-
add_test_generic(NAME string_libcxx_string_view_opge_string TRACERS none pmemcheck memcheck)
827+
build_test(string_libcxx_string_view_opgt_pointer libcxx/string.view/string.view.comparison/opgt.string_view.pointer.pass.cpp)
828+
add_test_generic(NAME string_libcxx_string_view_opgt_pointer TRACERS none pmemcheck memcheck)
825829

826-
build_test(string_libcxx_string_view_opgt_string_view libcxx/string.view/string.view.comparison/opgt.string_view.string_view.pass.cpp)
827-
add_test_generic(NAME string_libcxx_string_view_opgt_string_view TRACERS none pmemcheck memcheck)
830+
build_test(string_libcxx_string_view_opgt_string libcxx/string.view/string.view.comparison/opgt.string_view.string.pass.cpp)
831+
add_test_generic(NAME string_libcxx_string_view_opgt_string TRACERS none pmemcheck memcheck)
828832

829-
build_test(string_libcxx_string_view_opgt_pointer libcxx/string.view/string.view.comparison/opgt.string_view.pointer.pass.cpp)
830-
add_test_generic(NAME string_libcxx_string_view_opgt_pointer TRACERS none pmemcheck memcheck)
833+
build_test(string_libcxx_string_view_ople_pointer libcxx/string.view/string.view.comparison/ople.string_view.pointer.pass.cpp)
834+
add_test_generic(NAME string_libcxx_string_view_ople_pointer TRACERS none pmemcheck memcheck)
831835

832-
build_test(string_libcxx_string_view_opgt_string libcxx/string.view/string.view.comparison/opgt.string_view.string.pass.cpp)
833-
add_test_generic(NAME string_libcxx_string_view_opgt_string TRACERS none pmemcheck memcheck)
836+
build_test(string_libcxx_string_view_ople_string libcxx/string.view/string.view.comparison/ople.string_view.string.pass.cpp)
837+
add_test_generic(NAME string_libcxx_string_view_ople_string TRACERS none pmemcheck memcheck)
834838

835-
build_test(string_libcxx_string_view_ople_string_view libcxx/string.view/string.view.comparison/ople.string_view.string_view.pass.cpp)
836-
add_test_generic(NAME string_libcxx_string_view_ople_string_view TRACERS none pmemcheck memcheck)
839+
build_test(string_libcxx_string_view_oplt_pointer libcxx/string.view/string.view.comparison/oplt.string_view.pointer.pass.cpp)
840+
add_test_generic(NAME string_libcxx_string_view_oplt_pointer TRACERS none pmemcheck memcheck)
837841

838-
build_test(string_libcxx_string_view_ople_pointer libcxx/string.view/string.view.comparison/ople.string_view.pointer.pass.cpp)
839-
add_test_generic(NAME string_libcxx_string_view_ople_pointer TRACERS none pmemcheck memcheck)
842+
build_test(string_libcxx_string_view_oplt_string libcxx/string.view/string.view.comparison/oplt.string_view.string.pass.cpp)
843+
add_test_generic(NAME string_libcxx_string_view_oplt_string TRACERS none pmemcheck memcheck)
840844

841-
build_test(string_libcxx_string_view_ople_string libcxx/string.view/string.view.comparison/ople.string_view.string.pass.cpp)
842-
add_test_generic(NAME string_libcxx_string_view_ople_string TRACERS none pmemcheck memcheck)
845+
build_test(string_libcxx_string_view_opne_string libcxx/string.view/string.view.comparison/opne.string_view.string.pass.cpp)
846+
add_test_generic(NAME string_libcxx_string_view_opne_string TRACERS none pmemcheck memcheck)
843847

844-
build_test(string_libcxx_string_view_oplt_string_view libcxx/string.view/string.view.comparison/oplt.string_view.string_view.pass.cpp)
845-
add_test_generic(NAME string_libcxx_string_view_oplt_string_view TRACERS none pmemcheck memcheck)
848+
build_test(string_libcxx_string_view_opne_pointer libcxx/string.view/string.view.comparison/opne.string_view.pointer.pass.cpp)
849+
add_test_generic(NAME string_libcxx_string_view_opne_pointer TRACERS none pmemcheck memcheck)
850+
endif()
851+
852+
build_test(string_libcxx_string_view_opge_string_view libcxx/string.view/string.view.comparison/opge.string_view.string_view.pass.cpp)
853+
add_test_generic(NAME string_libcxx_string_view_opge_string_view TRACERS none pmemcheck memcheck)
846854

847-
build_test(string_libcxx_string_view_oplt_pointer libcxx/string.view/string.view.comparison/oplt.string_view.pointer.pass.cpp)
848-
add_test_generic(NAME string_libcxx_string_view_oplt_pointer TRACERS none pmemcheck memcheck)
855+
build_test(string_libcxx_string_view_opgt_string_view libcxx/string.view/string.view.comparison/opgt.string_view.string_view.pass.cpp)
856+
add_test_generic(NAME string_libcxx_string_view_opgt_string_view TRACERS none pmemcheck memcheck)
857+
858+
build_test(string_libcxx_string_view_ople_string_view libcxx/string.view/string.view.comparison/ople.string_view.string_view.pass.cpp)
859+
add_test_generic(NAME string_libcxx_string_view_ople_string_view TRACERS none pmemcheck memcheck)
849860

850-
build_test(string_libcxx_string_view_oplt_string libcxx/string.view/string.view.comparison/oplt.string_view.string.pass.cpp)
851-
add_test_generic(NAME string_libcxx_string_view_oplt_string TRACERS none pmemcheck memcheck)
861+
build_test(string_libcxx_string_view_oplt_string_view libcxx/string.view/string.view.comparison/oplt.string_view.string_view.pass.cpp)
862+
add_test_generic(NAME string_libcxx_string_view_oplt_string_view TRACERS none pmemcheck memcheck)
852863

853864
build_test(string_libcxx_string_view_opne_string_view libcxx/string.view/string.view.comparison/opne.string_view.string_view.pass.cpp)
854865
add_test_generic(NAME string_libcxx_string_view_opne_string_view TRACERS none pmemcheck memcheck)
855-
856-
build_test(string_libcxx_string_view_opne_pointer libcxx/string.view/string.view.comparison/opne.string_view.pointer.pass.cpp)
857-
add_test_generic(NAME string_libcxx_string_view_opne_pointer TRACERS none pmemcheck memcheck)
858-
859-
build_test(string_libcxx_string_view_opne_string libcxx/string.view/string.view.comparison/opne.string_view.string.pass.cpp)
860-
add_test_generic(NAME string_libcxx_string_view_opne_string TRACERS none pmemcheck memcheck)
861866
endif()
862867
endif()
863868

0 commit comments

Comments
 (0)