aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/ECMGenerateExportHeader.cmake6
-rw-r--r--tests/ECMGenerateExportHeaderTest/format_version/CMakeLists.txt26
2 files changed, 27 insertions, 5 deletions
diff --git a/modules/ECMGenerateExportHeader.cmake b/modules/ECMGenerateExportHeader.cmake
index 96c1f696..81bf33e3 100644
--- a/modules/ECMGenerateExportHeader.cmake
+++ b/modules/ECMGenerateExportHeader.cmake
@@ -383,14 +383,14 @@ function(ecm_export_header_format_version _version)
)
cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
- if (NOT ARGS_CURRENT_VERSION)
- message(FATAL_ERROR "No CURRENT_VERSION passed when calling ecm_export_header_format_version().")
- endif()
if (NOT ARGS_STRING_VAR AND NOT ARGS_HEXNUMBER_VAR)
message(FATAL_ERROR "No STRING_VAR or HEXNUMBER_VAR passed when calling ecm_export_header_format_version().")
endif()
if(_version STREQUAL "CURRENT")
+ if (NOT ARGS_CURRENT_VERSION )
+ message(FATAL_ERROR "\"CURRENT\" as version value not supported when CURRENT_VERSION not passed on calling ecm_export_header_format_version().")
+ endif()
set(_version ${ARGS_CURRENT_VERSION})
endif()
diff --git a/tests/ECMGenerateExportHeaderTest/format_version/CMakeLists.txt b/tests/ECMGenerateExportHeaderTest/format_version/CMakeLists.txt
index b46719c2..bcb681d2 100644
--- a/tests/ECMGenerateExportHeaderTest/format_version/CMakeLists.txt
+++ b/tests/ECMGenerateExportHeaderTest/format_version/CMakeLists.txt
@@ -9,7 +9,7 @@ include(../../test_helpers.cmake)
set(_current_version "4.5.6")
-# check 0
+# check 0: with CURRENT_VERSION
ecm_export_header_format_version(0
CURRENT_VERSION ${_current_version}
STRING_VAR _versionstring
@@ -19,7 +19,16 @@ ecm_export_header_format_version(0
assert_var_str_value(_versionstring "0")
assert_var_str_value(_hexnumber "0")
-# check other
+# check 0: no CURRENT_VERSION
+ecm_export_header_format_version(0
+ STRING_VAR _versionstring
+ HEXNUMBER_VAR _hexnumber
+)
+
+assert_var_str_value(_versionstring "0")
+assert_var_str_value(_hexnumber "0")
+
+# check some version: with CURRENT_VERSION
ecm_export_header_format_version(1.2.3
CURRENT_VERSION ${_current_version}
STRING_VAR _versionstring
@@ -33,6 +42,19 @@ else()
assert_var_str_value(_hexnumber "66051")
endif()
+# check some version: no CURRENT_VERSION
+ecm_export_header_format_version(1.2.3
+ 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}