Kaynağa Gözat

Merge topic 'GenerateExportHeader-include-guard'

b1ae9aaf GenerateExportHeader: add release notes, tests for include guard changes
f4082b0e GenerateExportHeader: add INCLUDE_GUARD_NAME option

Acked-by: Kitware Robot <[email protected]>
Merge-request: !1643
Brad King 7 yıl önce
ebeveyn
işleme
05e9cdb81e
22 değiştirilmiş dosya ile 62 ekleme ve 17 silme
  1. 8 0
      Help/release/dev/GenerateExportHeader-include-guard.rst
  2. 7 2
      Modules/GenerateExportHeader.cmake
  3. 1 1
      Modules/exportheader.cmake.in
  4. 1 0
      Tests/RunCMake/GenerateExportHeader/GEH.cmake
  5. 2 0
      Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake
  6. 19 0
      Tests/RunCMake/GenerateExportHeader/includeguard/CMakeLists.txt
  7. 0 0
      Tests/RunCMake/GenerateExportHeader/includeguard/libincludeguard.cpp
  8. 10 0
      Tests/RunCMake/GenerateExportHeader/includeguard/main.cpp.in
  9. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/Empty/libshared_export.h
  10. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/Empty/libstatic_export.h
  11. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/MinGW/libshared_export.h
  12. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/MinGW/libstatic_export.h
  13. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/UNIX/libshared_export.h
  14. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/UNIX/libstatic_export.h
  15. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h
  16. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h
  17. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libshared_export.h
  18. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h
  19. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/Win32/libshared_export.h
  20. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/Win32/libstatic_export.h
  21. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libshared_export.h
  22. 1 1
      Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libstatic_export.h

+ 8 - 0
Help/release/dev/GenerateExportHeader-include-guard.rst

@@ -0,0 +1,8 @@
+GenerateExportHeader-include-guard
+----------------------------------
+
+* The :module:`GenerateExportHeader` module learned an optional
+  ``INCLUDE_GUARD_NAME`` parameter to change the name of the include guard
+  symbol written to the generated export header.
+  Additionally, it now adds a comment after the closing ``#endif`` on the
+  generated export header's include guard.

+ 7 - 2
Modules/GenerateExportHeader.cmake

@@ -19,6 +19,7 @@
 #              [EXPORT_FILE_NAME <export_file_name>]
 #              [DEPRECATED_MACRO_NAME <deprecated_macro_name>]
 #              [NO_EXPORT_MACRO_NAME <no_export_macro_name>]
+#              [INCLUDE_GUARD_NAME <include_guard_name>]
 #              [STATIC_DEFINE <static_define>]
 #              [NO_DEPRECATED_MACRO_NAME <no_deprecated_macro_name>]
 #              [DEFINE_NO_DEPRECATED]
@@ -277,7 +278,7 @@ macro(_DO_GENERATE_EXPORT_HEADER TARGET_LIBRARY)
   set(options DEFINE_NO_DEPRECATED)
   set(oneValueArgs PREFIX_NAME BASE_NAME EXPORT_MACRO_NAME EXPORT_FILE_NAME
     DEPRECATED_MACRO_NAME NO_EXPORT_MACRO_NAME STATIC_DEFINE
-    NO_DEPRECATED_MACRO_NAME CUSTOM_CONTENT_FROM_VARIABLE)
+    NO_DEPRECATED_MACRO_NAME CUSTOM_CONTENT_FROM_VARIABLE INCLUDE_GUARD_NAME)
   set(multiValueArgs)
 
   cmake_parse_arguments(_GEH "${options}" "${oneValueArgs}" "${multiValueArgs}"
@@ -341,7 +342,11 @@ macro(_DO_GENERATE_EXPORT_HEADER TARGET_LIBRARY)
   endif()
   string(MAKE_C_IDENTIFIER ${NO_DEPRECATED_MACRO_NAME} NO_DEPRECATED_MACRO_NAME)
 
-  set(INCLUDE_GUARD_NAME "${EXPORT_MACRO_NAME}_H")
+  if(_GEH_INCLUDE_GUARD_NAME)
+    set(INCLUDE_GUARD_NAME ${_GEH_INCLUDE_GUARD_NAME})
+  else()
+    set(INCLUDE_GUARD_NAME "${EXPORT_MACRO_NAME}_H")
+  endif()
 
   get_target_property(EXPORT_IMPORT_CONDITION ${TARGET_LIBRARY} DEFINE_SYMBOL)
 

+ 1 - 1
Modules/exportheader.cmake.in

@@ -39,4 +39,4 @@
 #  endif
 #endif
 @CUSTOM_CONTENT@
-#endif
+#endif /* @INCLUDE_GUARD_NAME@ */

+ 1 - 0
Tests/RunCMake/GenerateExportHeader/GEH.cmake

@@ -85,6 +85,7 @@ macro_add_test_library(libshared)
 macro_add_test_library(libstatic)
 
 add_subdirectory(nodeprecated)
+add_subdirectory(includeguard)
 if(NOT BORLAND)
   add_subdirectory(c_identifier)
 endif()

+ 2 - 0
Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake

@@ -12,6 +12,8 @@ function(run_GEH)
   run_cmake(GEH)
   run_cmake_command(GEH-build ${CMAKE_COMMAND} --build . --config Debug)
   run_cmake_command(GEH-run ${RunCMake_TEST_BINARY_DIR}/GenerateExportHeader)
+  run_cmake_command(GEH-incguard-macro-run ${RunCMake_TEST_BINARY_DIR}/test_includeguard_macro)
+  run_cmake_command(GEH-incguard-custom-run ${RunCMake_TEST_BINARY_DIR}/test_includeguard_custom)
 
   file(STRINGS "${RunCMake_TEST_BINARY_DIR}/failure_test_targets"
     failure_test_targets)

+ 19 - 0
Tests/RunCMake/GenerateExportHeader/includeguard/CMakeLists.txt

@@ -0,0 +1,19 @@
+set(libincludeguard_SRC libincludeguard.cpp)
+
+add_library(includeguard_macro ${libincludeguard_SRC})
+generate_export_header(includeguard_macro)
+
+set(EXPORT_HEADER includeguard_macro_export.h)
+set(DEF_SYMBOL INCLUDEGUARD_MACRO_EXPORT_H)
+set(NDEF_SYMBOL CUSTOM_GUARD)
+configure_file(main.cpp.in main_macro.cpp)
+add_executable(test_includeguard_macro ${CMAKE_CURRENT_BINARY_DIR}/main_macro.cpp)
+
+add_library(includeguard_custom ${libincludeguard_SRC})
+generate_export_header(includeguard_custom INCLUDE_GUARD_NAME CUSTOM_GUARD)
+
+set(EXPORT_HEADER includeguard_custom_export.h)
+set(DEF_SYMBOL CUSTOM_GUARD)
+set(NDEF_SYMBOL INCLUDEGUARD_CUSTOM_EXPORT_H)
+configure_file(main.cpp.in main_custom.cpp)
+add_executable(test_includeguard_custom ${CMAKE_CURRENT_BINARY_DIR}/main_custom.cpp)

+ 0 - 0
Tests/RunCMake/GenerateExportHeader/includeguard/libincludeguard.cpp


+ 10 - 0
Tests/RunCMake/GenerateExportHeader/includeguard/main.cpp.in

@@ -0,0 +1,10 @@
+#include "@EXPORT_HEADER@"
+
+int main()
+{
+#if defined(@DEF_SYMBOL@) && !defined(@NDEF_SYMBOL@)
+  return 0;
+#else
+  return 1;
+#endif
+}

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/Empty/libshared_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/Empty/libstatic_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/MinGW/libshared_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/MinGW/libstatic_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/UNIX/libshared_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/UNIX/libstatic_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libshared_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/Win32/libshared_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/Win32/libstatic_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libshared_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */

+ 1 - 1
Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libstatic_export.h

@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */