aboutsummaryrefslogtreecommitdiff
path: root/tests/ECMGenerateExportHeaderTest/consumer/CMakeLists.txt
blob: fbbb5e7bdbf0a257f6fa4ab9397007da9332d0ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
cmake_minimum_required(VERSION 3.0.0)

project(consumer)

include(CheckCXXSourceCompiles)
include(CMakeParseArguments)

include(../../test_helpers.cmake)

include("${CMAKE_CURRENT_BINARY_DIR}/../installation/${LIBRARY}/lib/library/LibraryTargets.cmake")

# map any "CURRENT" value to library version string
# keep version in sync with the one used in library/CMakeLists.txt
set(library_version 2.40.0)
if(LIBRARY_DISABLE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT")
    set(LIBRARY_DISABLE_DEPRECATED_BEFORE_AND_AT ${library_version})
endif()
if(DEPRECATED_EXCLUDED_BEFORE_AND_AT STREQUAL "CURRENT")
    set(DEPRECATED_EXCLUDED_BEFORE_AND_AT ${library_version})
endif()

# load the test variant specific testAPI method
include(testAPI_${TEST_VARIANT}.cmake)

# for each API element test their visibility to the compiler and if a warning is emitted
set(_code "Enum enumerator = Enumerator_deprecatedAt2_0;")
testAPI(_code DEPRECATED_AT 2.0 CXX_STANDARD 11 BUILD_TIME_ONLY_DISABLABLE NO_WARNING)

set(_code "Enum enumerator = Enumerator_deprecatedAt2_0;")
# we do not yet support enumerator warnings with MSVC
if(MSVC)
    testAPI(_code DEPRECATED_AT 2.0 CXX_STANDARD 17 BUILD_TIME_ONLY_DISABLABLE NO_WARNING)
else()
    testAPI(_code DEPRECATED_AT 2.0 CXX_STANDARD 17 BUILD_TIME_ONLY_DISABLABLE)
endif()

set(_code "Enum enumerator = Enumerator_deprecatedAt2_12;")
testAPI(_code DEPRECATED_AT 2.12 CXX_STANDARD 11 NO_WARNING)

set(_code "Enum enumerator = Enumerator_deprecatedAt2_12;")
# we do not yet support enumerator warnings with MSVC
if(MSVC)
    testAPI(_code DEPRECATED_AT 2.12 CXX_STANDARD 17 NO_WARNING)
else()
    testAPI(_code DEPRECATED_AT 2.12 CXX_STANDARD 17)
endif()

set(_code "Enum enumerator = Enumerator_not_deprecated;")
testAPI(_code)

set(_code "function_deprecatedAt2_0();")
testAPI(_code DEPRECATED_AT 2.0)

set(_code "function_deprecatedAt2_12();")
testAPI(_code DEPRECATED_AT 2.12)

set(_code "function_not_deprecated();")
testAPI(_code)

set(_code "Class().method_deprecatedAt2_0();")
testAPI(_code DEPRECATED_AT 2.0 BUILD_TIME_ONLY_DISABLABLE)

set(_code "Class().method_deprecatedAt2_12();")
testAPI(_code DEPRECATED_AT 2.12 BUILD_TIME_ONLY_DISABLABLE)

set(_code "Class().method_not_deprecated();")
testAPI(_code)

add_executable(dummy main.cpp)