WCDH: Ensure that the prefix argument to the macro is valid.
The prefix must be a C-identifier because it is written as the prefix of preprocessor macros and possibly structs.
This commit is contained in:
parent
477b07213a
commit
b47c125ff7
|
@ -235,6 +235,14 @@ function(write_compiler_detection_header
|
|||
message(FATAL_ERROR "Unparsed arguments: ${_WCD_UNPARSED_ARGUMENTS}")
|
||||
endif()
|
||||
|
||||
if (prefix_arg STREQUAL "")
|
||||
message(FATAL_ERROR "A prefix must be specified")
|
||||
endif()
|
||||
string(MAKE_C_IDENTIFIER ${prefix_arg} cleaned_prefix)
|
||||
if (NOT prefix_arg STREQUAL cleaned_prefix)
|
||||
message(FATAL_ERROR "The prefix must be a valid C identifier.")
|
||||
endif()
|
||||
|
||||
if(NOT _WCD_VERSION)
|
||||
set(_WCD_VERSION ${CMAKE_MINIMUM_REQUIRED_VERSION})
|
||||
endif()
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
1
|
|
@ -0,0 +1,5 @@
|
|||
CMake Error at .*/Modules/WriteCompilerDetectionHeader.cmake:[0-9]+ \(message\):
|
||||
A prefix must be specified
|
||||
Call Stack \(most recent call first\):
|
||||
EmptyPrefix.cmake:[0-9]+ \(write_compiler_detection_header\)
|
||||
CMakeLists.txt:[0-9]+ \(include\)
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
include(WriteCompilerDetectionHeader)
|
||||
|
||||
write_compiler_detection_header(
|
||||
FILE "${CMAKE_CURRENT_BINARY_DIR}/somefile"
|
||||
PREFIX ""
|
||||
VERSION 3.1
|
||||
COMPILERS GNU
|
||||
FEATURES cxx_final
|
||||
)
|
|
@ -0,0 +1 @@
|
|||
1
|
|
@ -0,0 +1,5 @@
|
|||
CMake Error at .*/Modules/WriteCompilerDetectionHeader.cmake:[0-9]+ \(message\):
|
||||
The prefix must be a valid C identifier.
|
||||
Call Stack \(most recent call first\):
|
||||
InvalidPrefix.cmake:[0-9]+ \(write_compiler_detection_header\)
|
||||
CMakeLists.txt:[0-9]+ \(include\)
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
include(WriteCompilerDetectionHeader)
|
||||
|
||||
write_compiler_detection_header(
|
||||
FILE "${CMAKE_CURRENT_BINARY_DIR}/somefile"
|
||||
PREFIX "0compile"
|
||||
VERSION 3.1
|
||||
COMPILERS GNU
|
||||
FEATURES cxx_final
|
||||
)
|
|
@ -10,3 +10,5 @@ run_cmake(OldVersion)
|
|||
run_cmake(InvalidCompiler)
|
||||
run_cmake(InvalidFeature)
|
||||
run_cmake(InvalidCXXFeature)
|
||||
run_cmake(EmptyPrefix)
|
||||
run_cmake(InvalidPrefix)
|
||||
|
|
Loading…
Reference in New Issue