Warning, /frameworks/extra-cmake-modules/tests/ECMGenerateHeadersTest/run_test.cmake.config is written in an unsupported language. File is not indexed.

0001 project(ECMGenerateHeadersTest)
0002 cmake_minimum_required(VERSION 3.16)
0003 
0004 set(CMAKE_MODULE_PATH "@MODULES_DIR@")
0005 set(CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
0006 set(CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@")
0007 
0008 include(ECMGenerateHeaders)
0009 
0010 function (check_files)
0011     set(options)
0012     set(oneValueArgs GENERATED ORIGINALS)
0013     set(multiValueArgs)
0014     cmake_parse_arguments(CF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
0015     list(LENGTH CF_GENERATED count)
0016     math(EXPR last "${count}-1")
0017     foreach(i RANGE ${last})
0018         list(GET CF_GENERATED ${i} generated_file)
0019         list(GET CF_ORIGINALS ${i} original_file)
0020         if (NOT EXISTS "${generated_file}")
0021             message(FATAL_ERROR "${generated_file} was not generated")
0022         endif()
0023         file(READ "${generated_file}" file_contents)
0024         string(STRIP "${file_contents}" file_contents)
0025         set (exp_contents "#include \"${original_file}\"")
0026         if (NOT "${file_contents}" STREQUAL "${exp_contents}")
0027             message(FATAL_ERROR "${generated_file} contains '${file_contents}' instead of '${exp_contents}'")
0028         endif()
0029     endforeach()
0030 endfunction()
0031 
0032 ###########################################################
0033 
0034 message(STATUS "Test 1: no optional arguments")
0035 set(camelcase_headers)
0036 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest1"
0037              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2")
0038 set(origfiles headtest1.h headtest2.h)
0039 file(REMOVE ${expfiles})
0040 ecm_generate_headers(
0041     camelcase_headers
0042     HEADER_NAMES HeadTest1 HeadTest2
0043 )
0044 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0045     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0046 endif()
0047 check_files(GENERATED ${expfiles}
0048             ORIGINALS ${origfiles})
0049 
0050 
0051 ###########################################################
0052 
0053 message(STATUS "Test 2: RELATIVE")
0054 set(camelcase_headers)
0055 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2"
0056              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest3")
0057 set(origfiles headtest2.h headtest3.h)
0058 file(REMOVE ${expfiles})
0059 ecm_generate_headers(
0060     camelcase_headers
0061     HEADER_NAMES HeadTest2 HeadTest3
0062     RELATIVE headsubdir
0063 )
0064 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0065     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0066 endif()
0067 check_files(GENERATED ${expfiles}
0068             ORIGINALS ${origfiles})
0069 
0070 
0071 ###########################################################
0072 
0073 message(STATUS "Test 3: OUTPUT_DIR")
0074 set(camelcase_headers)
0075 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/testdir/HeadTest1"
0076              "${CMAKE_CURRENT_BINARY_DIR}/testdir/HeadTest2")
0077 set(origfiles headtest1.h headtest2.h)
0078 file(REMOVE ${expfiles})
0079 ecm_generate_headers(
0080     camelcase_headers
0081     HEADER_NAMES HeadTest1 HeadTest2
0082     OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/testdir"
0083 )
0084 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0085     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0086 endif()
0087 check_files(GENERATED ${expfiles}
0088             ORIGINALS ${origfiles})
0089 
0090 
0091 ###########################################################
0092 
0093 message(STATUS "Test 4: PREFIX")
0094 set(camelcase_headers)
0095 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/Module/HeadTest1"
0096              "${CMAKE_CURRENT_BINARY_DIR}/Module/HeadTest2")
0097 set(intermediatefiles module/headtest1.h module/headtest2.h)
0098 set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/headtest1.h"
0099               "${CMAKE_CURRENT_SOURCE_DIR}/headtest2.h")
0100 file(REMOVE ${expfiles} ${intermediatefiles})
0101 ecm_generate_headers(
0102     camelcase_headers
0103     HEADER_NAMES HeadTest1 HeadTest2
0104     PREFIX Module
0105 )
0106 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0107     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0108 endif()
0109 check_files(GENERATED ${expfiles}
0110             ORIGINALS ${intermediatefiles})
0111 check_files(GENERATED ${expfiles}
0112             ORIGINALS ${intermediatefiles})
0113 
0114 
0115 ###########################################################
0116 
0117 message(STATUS "Test 5: REQUIRED_HEADERS")
0118 set(camelcase_headers)
0119 set(req_headers)
0120 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest1"
0121              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2")
0122 set(origfiles headtest1.h headtest2.h)
0123 set(origpaths "${CMAKE_CURRENT_SOURCE_DIR}/headtest1.h"
0124               "${CMAKE_CURRENT_SOURCE_DIR}/headtest2.h")
0125 file(REMOVE ${expfiles})
0126 ecm_generate_headers(
0127     camelcase_headers
0128     HEADER_NAMES HeadTest1 HeadTest2
0129     REQUIRED_HEADERS req_headers
0130 )
0131 if (NOT "${origpaths}" STREQUAL "${req_headers}")
0132     message(FATAL_ERROR "REQUIRED_HEADERS var was set to \"${req_headers}\" instead of \"${origpaths}\"")
0133 endif()
0134 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0135     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0136 endif()
0137 check_files(GENERATED ${expfiles}
0138             ORIGINALS ${origfiles})
0139 
0140 
0141 ###########################################################
0142 
0143 message(STATUS "Test 6: RELATIVE and REQUIRED_HEADERS")
0144 set(camelcase_headers)
0145 set(req_headers)
0146 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2"
0147              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest3")
0148 set(origfiles headtest2.h headtest3.h)
0149 set(origpaths "${CMAKE_CURRENT_SOURCE_DIR}/headsubdir/headtest2.h"
0150               "${CMAKE_CURRENT_SOURCE_DIR}/headsubdir/headtest3.h")
0151 file(REMOVE ${expfiles})
0152 ecm_generate_headers(
0153     camelcase_headers
0154     HEADER_NAMES HeadTest2 HeadTest3
0155     RELATIVE headsubdir
0156     REQUIRED_HEADERS req_headers
0157 )
0158 if (NOT "${origpaths}" STREQUAL "${req_headers}")
0159     message(FATAL_ERROR "REQUIRED_HEADERS var was set to \"${req_headers}\" instead of \"${origpaths}\"")
0160 endif()
0161 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0162     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0163 endif()
0164 check_files(GENERATED ${expfiles}
0165             ORIGINALS ${origfiles})
0166 
0167 
0168 ###########################################################
0169 
0170 message(STATUS "Test 7: OUTPUT_DIR and REQUIRED_HEADERS")
0171 set(camelcase_headers)
0172 set(req_headers)
0173 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/testdir/HeadTest1"
0174              "${CMAKE_CURRENT_BINARY_DIR}/testdir/HeadTest2")
0175 set(origfiles headtest1.h headtest2.h)
0176 set(origpaths "${CMAKE_CURRENT_SOURCE_DIR}/headtest1.h"
0177               "${CMAKE_CURRENT_SOURCE_DIR}/headtest2.h")
0178 file(REMOVE ${expfiles})
0179 ecm_generate_headers(
0180     camelcase_headers
0181     HEADER_NAMES HeadTest1 HeadTest2
0182     OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/testdir"
0183     REQUIRED_HEADERS req_headers
0184 )
0185 if (NOT "${origpaths}" STREQUAL "${req_headers}")
0186     message(FATAL_ERROR "REQUIRED_HEADERS var was set to \"${req_headers}\" instead of \"${origpaths}\"")
0187 endif()
0188 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0189     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0190 endif()
0191 check_files(GENERATED ${expfiles}
0192             ORIGINALS ${origfiles})
0193 
0194 
0195 ###########################################################
0196 
0197 message(STATUS "Test 8: PREFIX and REQUIRED_HEADERS")
0198 set(camelcase_headers)
0199 set(req_headers)
0200 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/Module/HeadTest1"
0201              "${CMAKE_CURRENT_BINARY_DIR}/Module/HeadTest2")
0202 set(intermediatefiles module/headtest1.h module/headtest2.h)
0203 set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/headtest1.h"
0204               "${CMAKE_CURRENT_SOURCE_DIR}/headtest2.h")
0205 set(origpaths ${origfiles})
0206 file(REMOVE ${expfiles} ${intermediatefiles})
0207 ecm_generate_headers(
0208     camelcase_headers
0209     HEADER_NAMES HeadTest1 HeadTest2
0210     PREFIX Module
0211     REQUIRED_HEADERS req_headers
0212 )
0213 if (NOT "${origpaths}" STREQUAL "${req_headers}")
0214     message(FATAL_ERROR "REQUIRED_HEADERS var was set to \"${req_headers}\" instead of \"${origpaths}\"")
0215 endif()
0216 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0217     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0218 endif()
0219 check_files(GENERATED ${expfiles}
0220             ORIGINALS ${intermediatefiles})
0221 check_files(GENERATED ${expfiles}
0222             ORIGINALS ${intermediatefiles})
0223 
0224 
0225 ###########################################################
0226 
0227 message(STATUS "Test 9: REQUIRED_HEADERS (duplicate var)")
0228 set(all_headers)
0229 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest1"
0230              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2")
0231 set(origfiles headtest1.h headtest2.h)
0232 set(origpaths "${CMAKE_CURRENT_SOURCE_DIR}/headtest1.h"
0233               "${CMAKE_CURRENT_SOURCE_DIR}/headtest2.h")
0234 file(REMOVE ${expfiles})
0235 ecm_generate_headers(
0236     all_headers
0237     HEADER_NAMES HeadTest1 HeadTest2
0238     REQUIRED_HEADERS all_headers
0239 )
0240 list(SORT all_headers)
0241 set(exp_headers ${expfiles} ${origpaths})
0242 list(SORT exp_headers)
0243 if (NOT "${exp_headers}" STREQUAL "${all_headers}")
0244     message(FATAL_ERROR "combined headers var was set to \"${all_headers}\" instead of \"${exp_headers}\"")
0245 endif()
0246 check_files(GENERATED ${expfiles}
0247             ORIGINALS ${origfiles})
0248 
0249 
0250 ###########################################################
0251 
0252 message(STATUS "Test 10: ORIGINAL CAMELCASE")
0253 set(forward_headers)
0254 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/CamelCaseHeadTest1"
0255              "${CMAKE_CURRENT_BINARY_DIR}/CamelCaseHeadTest2")
0256 set(origfiles CamelCaseHeadTest1.h CamelCaseHeadTest2.h)
0257 file(REMOVE ${expfiles})
0258 ecm_generate_headers(
0259     forward_headers
0260     ORIGINAL CAMELCASE
0261     HEADER_NAMES CamelCaseHeadTest1 CamelCaseHeadTest2
0262 )
0263 if (NOT "${expfiles}" STREQUAL "${forward_headers}")
0264     message(FATAL_ERROR "forward_headers was set to \"${forward_headers}\" instead of \"${expfiles}\"")
0265 endif()
0266 check_files(GENERATED ${expfiles}
0267             ORIGINALS ${origfiles})
0268 
0269 
0270 ###########################################################
0271 
0272 message(STATUS "Test 11: PREFIX and ORIGINAL CAMELCASE")
0273 set(forward_headers)
0274 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/Module/CamelCaseHeadTest1"
0275              "${CMAKE_CURRENT_BINARY_DIR}/Module/CamelCaseHeadTest2")
0276 set(intermediatefiles Module/CamelCaseHeadTest1.h Module/CamelCaseHeadTest2.h)
0277 set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/headtest1.h"
0278               "${CMAKE_CURRENT_SOURCE_DIR}/headtest2.h")
0279 file(REMOVE ${expfiles} ${intermediatefiles})
0280 ecm_generate_headers(
0281     forward_headers
0282     ORIGINAL CAMELCASE
0283     HEADER_NAMES CamelCaseHeadTest1 CamelCaseHeadTest2
0284     PREFIX Module
0285 )
0286 if (NOT "${expfiles}" STREQUAL "${forward_headers}")
0287     message(FATAL_ERROR "forward_headers was set to \"${forward_headers}\" instead of \"${expfiles}\"")
0288 endif()
0289 check_files(GENERATED ${expfiles}
0290             ORIGINALS ${intermediatefiles})
0291 check_files(GENERATED ${expfiles}
0292             ORIGINALS ${intermediatefiles})
0293 
0294 ###########################################################
0295 
0296 message(STATUS "Test 12: COMMON_HEADER")
0297 
0298 set(camelcase_headers)
0299 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest1"
0300              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2"
0301              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest4"
0302              "${CMAKE_CURRENT_BINARY_DIR}/CommonHeader")
0303 set(origfiles headtest1.h headtest2.h)
0304 file(REMOVE ${expfiles})
0305 ecm_generate_headers(
0306     camelcase_headers
0307     ORIGINAL LOWERCASE
0308     HEADER_NAMES HeadTest1 HeadTest2 HeadTest4
0309     COMMON_HEADER CommonHeader
0310 )
0311 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0312     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0313 endif()
0314 check_files(GENERATED ${expfiles}
0315             ORIGINALS ${origfiles})
0316 
0317 file(READ CommonHeader file_contents)
0318 string(STRIP "${file_contents}" file_contents)
0319 file(READ "${CMAKE_CURRENT_BINARY_DIR}/CommonHeader" exp_contents)
0320 string(STRIP "${exp_contents}" exp_contents)
0321 if (NOT "${file_contents}" STREQUAL "${exp_contents}")
0322     message(FATAL_ERROR "${generated_file} contains '${file_contents}' instead of '${exp_contents}'")
0323 endif()
0324 
0325 
0326 ###########################################################
0327 
0328 message(STATUS "Test 13: multiple classes and COMMON_HEADER")
0329 
0330 set(camelcase_headers)
0331 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest1"
0332              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2"
0333              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2Add1"
0334              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2Add2"
0335              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest4"
0336              "${CMAKE_CURRENT_BINARY_DIR}/CommonHeader")
0337 set(origfiles headtest1.h headtest2.h headtest4.h)
0338 file(REMOVE ${expfiles})
0339 ecm_generate_headers(
0340     camelcase_headers
0341     ORIGINAL LOWERCASE
0342     HEADER_NAMES HeadTest1 HeadTest2,HeadTest2Add1,HeadTest2Add2 HeadTest4
0343     COMMON_HEADER CommonHeader
0344 )
0345 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0346     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0347 endif()
0348 check_files(GENERATED ${expfiles}
0349             ORIGINALS ${origfiles})
0350 
0351 file(READ CommonHeader file_contents)
0352 string(STRIP "${file_contents}" file_contents)
0353 file(READ "${CMAKE_CURRENT_BINARY_DIR}/CommonHeader" exp_contents)
0354 string(STRIP "${exp_contents}" exp_contents)
0355 if (NOT "${file_contents}" STREQUAL "${exp_contents}")
0356     message(FATAL_ERROR "${generated_file} contains '${file_contents}' instead of '${exp_contents}'")
0357 endif()
0358 
0359 ###########################################################
0360 
0361 message(STATUS "Test 14: HEADER_EXTENSION")
0362 set(camelcase_headers)
0363 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest1"
0364              "${CMAKE_CURRENT_BINARY_DIR}/HeadTest2")
0365 set(origfiles headtest1.hpp headtest2.hpp)
0366 file(REMOVE ${expfiles})
0367 ecm_generate_headers(
0368     camelcase_headers
0369     HEADER_NAMES HeadTest1 HeadTest2
0370     HEADER_EXTENSION hpp
0371 )
0372 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0373     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0374 endif()
0375 check_files(GENERATED ${expfiles}
0376             ORIGINALS ${origfiles})
0377 
0378 ###########################################################
0379 
0380 message(STATUS "Test 15: Generated headers")
0381 set(camelcase_headers)
0382 set(expfiles "${CMAKE_CURRENT_BINARY_DIR}/HeadTest15")
0383 
0384 add_custom_command(
0385     OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/headtest15.h"
0386     COMMAND touch ${CMAKE_CURRENT_BINARY_DIR}/headtest15.h
0387 )
0388 
0389 set(origfiles headtest15.h)
0390 file(REMOVE ${expfiles})
0391 file(RELATIVE_PATH rel_path ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
0392 ecm_generate_headers(
0393     camelcase_headers
0394     HEADER_NAMES HeadTest15
0395     RELATIVE ${rel_path}
0396 )
0397 if (NOT "${expfiles}" STREQUAL "${camelcase_headers}")
0398     message(FATAL_ERROR "camelcase_headers was set to \"${camelcase_headers}\" instead of \"${expfiles}\"")
0399 endif()
0400 check_files(GENERATED ${expfiles}
0401             ORIGINALS ${origfiles})
0402 
0403 # vim:ft=cmake