From 8ef3f474e3a6def47dce36b54fbdce2d98c79342 Mon Sep 17 00:00:00 2001 From: Patrick Spendrin Date: Thu, 20 Aug 2015 21:46:20 +0200 Subject: add COMMON_HEADER option and multiple header functionality This adds a new keyword COMMON_HEADER which generates a new header containing all other headers. Also it is possible now to have multiple dummy headers per header file. It is assumed that the first header is the existing one. REVIEW: 124847 --- tests/ECMGenerateHeadersTest/CommonHeader | 4 ++ tests/ECMGenerateHeadersTest/headtest4.h | 0 tests/ECMGenerateHeadersTest/run_test.cmake.config | 65 ++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 tests/ECMGenerateHeadersTest/CommonHeader create mode 100644 tests/ECMGenerateHeadersTest/headtest4.h (limited to 'tests/ECMGenerateHeadersTest') diff --git a/tests/ECMGenerateHeadersTest/CommonHeader b/tests/ECMGenerateHeadersTest/CommonHeader new file mode 100644 index 00000000..0d101fbc --- /dev/null +++ b/tests/ECMGenerateHeadersTest/CommonHeader @@ -0,0 +1,4 @@ +// convenience header +#include "headtest1.h" +#include "headtest2.h" +#include "headtest4.h" diff --git a/tests/ECMGenerateHeadersTest/headtest4.h b/tests/ECMGenerateHeadersTest/headtest4.h new file mode 100644 index 00000000..e69de29b diff --git a/tests/ECMGenerateHeadersTest/run_test.cmake.config b/tests/ECMGenerateHeadersTest/run_test.cmake.config index 1db623b7..a9027dbc 100644 --- a/tests/ECMGenerateHeadersTest/run_test.cmake.config +++ b/tests/ECMGenerateHeadersTest/run_test.cmake.config @@ -288,5 +288,70 @@ check_files(GENERATED ${expfiles} check_files(GENERATED ${expfiles} ORIGINALS ${intermediatefiles}) +########################################################### + +message(STATUS "Test 12: COMMON_HEADER") + +set(camelcase_headers) +set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest1" + "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2" + "${CMAKE_CURRENT_BINARY_DIR}/HeadTest4" + "${CMAKE_CURRENT_BINARY_DIR}/CommonHeader") +set(origfiles headtest1.h headtest2.h) +file(REMOVE ${expfiles}) +ecm_generate_headers( + camelcase_headers + ORIGINAL LOWERCASE + HEADER_NAMES HeadTest1 HeadTest2 HeadTest4 + COMMON_HEADER CommonHeader +) +if (NOT "${expfiles}" STREQUAL "${camelcase_headers}") + message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"") +endif() +check_files(GENERATED ${expfiles} + ORIGINALS ${origfiles}) + +file(READ CommonHeader file_contents) +string(STRIP "${file_contents}" file_contents) +file(READ "${CMAKE_CURRENT_BINARY_DIR}/CommonHeader" exp_contents) +string(STRIP "${exp_contents}" exp_contents) +if (NOT "${file_contents}" STREQUAL "${exp_contents}") + message(FATAL_ERROR "${generated_file} contains '${file_contents}' instead of '${exp_contents}'") +endif() + + +########################################################### + +message(STATUS "Test 13: multiple classes and COMMON_HEADER") + +set(camelcase_headers) +set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest1" + "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2" + "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2Add1" + "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2Add2" + "${CMAKE_CURRENT_BINARY_DIR}/HeadTest4" + "${CMAKE_CURRENT_BINARY_DIR}/CommonHeader") +set(origfiles headtest1.h headtest2.h headtest4.h) +file(REMOVE ${expfiles}) +ecm_generate_headers( + camelcase_headers + ORIGINAL LOWERCASE + HEADER_NAMES HeadTest1 HeadTest2,HeadTest2Add1,HeadTest2Add2 HeadTest4 + COMMON_HEADER CommonHeader +) +if (NOT "${expfiles}" STREQUAL "${camelcase_headers}") + message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"") +endif() +check_files(GENERATED ${expfiles} + ORIGINALS ${origfiles}) + +file(READ CommonHeader file_contents) +string(STRIP "${file_contents}" file_contents) +file(READ "${CMAKE_CURRENT_BINARY_DIR}/CommonHeader" exp_contents) +string(STRIP "${exp_contents}" exp_contents) +if (NOT "${file_contents}" STREQUAL "${exp_contents}") + message(FATAL_ERROR "${generated_file} contains '${file_contents}' instead of '${exp_contents}'") +endif() + # vim:ft=cmake -- cgit v1.2.1