aboutsummaryrefslogtreecommitdiff
path: root/tests/ECMGenerateExportHeaderTest/format_version
diff options
context:
space:
mode:
authorFriedrich W. H. Kossebau <kossebau@kde.org>2019-09-04 19:19:27 +0200
committerFriedrich W. H. Kossebau <kossebau@kde.org>2019-10-10 22:50:03 +0200
commit7b15c20dafc9133f93bbc65354ec3a36af168fd3 (patch)
treeb61228f0bfb4cc4a50c70ccce67a69b273dc8d10 /tests/ECMGenerateExportHeaderTest/format_version
parentf3f4893b5bd20a32dd48b147fdd243c3226a06f3 (diff)
downloadextra-cmake-modules-7b15c20dafc9133f93bbc65354ec3a36af168fd3.tar.gz
extra-cmake-modules-7b15c20dafc9133f93bbc65354ec3a36af168fd3.tar.bz2
Add ECMGenerateExportHeader, for improved handling of deprecated API
Summary: Generates additional macros in the export header which can be used for fine-grained disabling of warnings & visibility as well as excluding from the build. Reviewers: #frameworks, #build_system Subscribers: chehrlic, dfaure, cgiboudeaux, kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D23789
Diffstat (limited to 'tests/ECMGenerateExportHeaderTest/format_version')
-rw-r--r--tests/ECMGenerateExportHeaderTest/format_version/CMakeLists.txt50
-rw-r--r--tests/ECMGenerateExportHeaderTest/format_version/main.cpp4
2 files changed, 54 insertions, 0 deletions
diff --git a/tests/ECMGenerateExportHeaderTest/format_version/CMakeLists.txt b/tests/ECMGenerateExportHeaderTest/format_version/CMakeLists.txt
new file mode 100644
index 00000000..b46719c2
--- /dev/null
+++ b/tests/ECMGenerateExportHeaderTest/format_version/CMakeLists.txt
@@ -0,0 +1,50 @@
+cmake_minimum_required(VERSION 3.0.0)
+
+project(format_version)
+
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../modules)
+include(ECMGenerateExportHeader)
+
+include(../../test_helpers.cmake)
+
+set(_current_version "4.5.6")
+
+# check 0
+ecm_export_header_format_version(0
+ CURRENT_VERSION ${_current_version}
+ STRING_VAR _versionstring
+ HEXNUMBER_VAR _hexnumber
+)
+
+assert_var_str_value(_versionstring "0")
+assert_var_str_value(_hexnumber "0")
+
+# check other
+ecm_export_header_format_version(1.2.3
+ CURRENT_VERSION ${_current_version}
+ STRING_VAR _versionstring
+ HEXNUMBER_VAR _hexnumber
+)
+
+assert_var_str_value(_versionstring "1.2.3")
+if (NOT CMAKE_VERSION VERSION_LESS 3.13)
+ assert_var_str_value(_hexnumber "0x10203")
+else()
+ assert_var_str_value(_hexnumber "66051")
+endif()
+
+# check CURRENT
+ecm_export_header_format_version(CURRENT
+ CURRENT_VERSION ${_current_version}
+ STRING_VAR _versionstring
+ HEXNUMBER_VAR _hexnumber
+)
+
+assert_var_str_value(_versionstring "4.5.6")
+if (NOT CMAKE_VERSION VERSION_LESS 3.13)
+ assert_var_str_value(_hexnumber "0x40506")
+else()
+ assert_var_str_value(_hexnumber "263430")
+endif()
+
+add_executable(dummy main.cpp)
diff --git a/tests/ECMGenerateExportHeaderTest/format_version/main.cpp b/tests/ECMGenerateExportHeaderTest/format_version/main.cpp
new file mode 100644
index 00000000..0f45ea60
--- /dev/null
+++ b/tests/ECMGenerateExportHeaderTest/format_version/main.cpp
@@ -0,0 +1,4 @@
+int main(int, char**)
+{
+ return 0;
+}