[Cmake-commits] CMake branch, master, updated. v3.10.2-895-g05e9cdb

Kitware Robot kwrobot at kitware.com
Wed Jan 24 08:55:05 EST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  05e9cdb81ecddba496f21d0c9e35e9536261337f (commit)
       via  1a9da3c055d84479dc011ff66ecf887d92fadf23 (commit)
       via  56fd8b3c7272e3d57333a86b2214f8673b9d557a (commit)
       via  2de6aa846ffbfb8fe258828fc96121a514a31284 (commit)
       via  52573b32397caed753ac9e5318d77786a1ff801e (commit)
       via  93bc5848e75101477215c3131b7b7ff2b4eb7053 (commit)
       via  b1ae9aaf790757d3fa43cccbb0e935171c191fff (commit)
       via  f4082b0e9b1ce139a29fba5951cec068862fe28b (commit)
       via  cd3e1600224a51cbc56b0d546a6f8486f1cf8d31 (commit)
       via  da1a500ceee74e61c7f1e082618911bb5f98ece6 (commit)
       via  4829ea239aa2b45170ce841e14d8e1ec076240ee (commit)
      from  06d607271ed73c2540647c6d257f8deacd86ecae (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=05e9cdb81ecddba496f21d0c9e35e9536261337f
commit 05e9cdb81ecddba496f21d0c9e35e9536261337f
Merge: 1a9da3c b1ae9aa
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jan 24 13:52:59 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed Jan 24 08:53:05 2018 -0500

    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 <kwrobot at kitware.com>
    Merge-request: !1643


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1a9da3c055d84479dc011ff66ecf887d92fadf23
commit 1a9da3c055d84479dc011ff66ecf887d92fadf23
Merge: 56fd8b3 93bc584
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jan 24 13:51:56 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed Jan 24 08:52:03 2018 -0500

    Merge topic 'cpack_trace'
    
    93bc5848 CPack: accept --trace and --trace-expand
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1583


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=56fd8b3c7272e3d57333a86b2214f8673b9d557a
commit 56fd8b3c7272e3d57333a86b2214f8673b9d557a
Merge: 2de6aa8 4829ea2
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jan 24 13:51:21 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed Jan 24 08:51:32 2018 -0500

    Merge topic 'UseJava-native-headers-generation'
    
    4829ea23 add_jar: add option GENERATE_NATIVE_HEADERS
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1675


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2de6aa846ffbfb8fe258828fc96121a514a31284
commit 2de6aa846ffbfb8fe258828fc96121a514a31284
Merge: 52573b3 da1a500
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jan 24 13:49:56 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed Jan 24 08:50:01 2018 -0500

    Merge topic 'vcxproj-spaces'
    
    da1a500c cmVisualStudio10TargetGenerator: remove redundant space char in some tags
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1684


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=52573b32397caed753ac9e5318d77786a1ff801e
commit 52573b32397caed753ac9e5318d77786a1ff801e
Merge: 06d6072 cd3e160
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jan 24 13:49:13 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed Jan 24 08:49:17 2018 -0500

    Merge topic 'generic-inc-sep-typo-remove'
    
    cd3e1600 GenericSystem: Remove misspelled flag default
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Acked-by: Brad King <brad.king at kitware.com>
    Merge-request: !1683


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=93bc5848e75101477215c3131b7b7ff2b4eb7053
commit 93bc5848e75101477215c3131b7b7ff2b4eb7053
Author:     Isaiah Norton <isaiah.norton at gmail.com>
AuthorDate: Sat Dec 9 11:46:58 2017 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Jan 23 13:15:53 2018 -0500

    CPack: accept --trace and --trace-expand

diff --git a/Help/manual/cpack.1.rst b/Help/manual/cpack.1.rst
index 4f9f28d..105bb67 100644
--- a/Help/manual/cpack.1.rst
+++ b/Help/manual/cpack.1.rst
@@ -62,6 +62,12 @@ Options
 
  Run cpack with debug output (for CPack developers).
 
+``--trace``
+ Put underlying cmake scripts in trace mode.
+
+``--trace-expand``
+ Put underlying cmake scripts in expanded trace mode.
+
 ``-P <package name>``
  override/define CPACK_PACKAGE_NAME
 
diff --git a/Help/release/dev/cpack_trace.rst b/Help/release/dev/cpack_trace.rst
new file mode 100644
index 0000000..1152385
--- /dev/null
+++ b/Help/release/dev/cpack_trace.rst
@@ -0,0 +1,4 @@
+cpack_trace
+-----------
+
+* :manual:`cpack(1)` gained ``--trace`` and ``--trace-expand`` options.
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index ea0e899..69e53e1 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -637,6 +637,8 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
         cm.GetCurrentSnapshot().SetDefaultDefinitions();
         cm.AddCMakePaths();
         cm.SetProgressCallback(cmCPackGeneratorProgress, this);
+        cm.SetTrace(this->Trace);
+        cm.SetTraceExpand(this->TraceExpand);
         cmGlobalGenerator gg(&cm);
         cmMakefile mf(&gg, cm.GetCurrentSnapshot());
         if (!installSubDirectory.empty() && installSubDirectory != "/" &&
diff --git a/Source/CPack/cmCPackGenerator.h b/Source/CPack/cmCPackGenerator.h
index 8100b66..c22f36b 100644
--- a/Source/CPack/cmCPackGenerator.h
+++ b/Source/CPack/cmCPackGenerator.h
@@ -36,6 +36,16 @@ public:
   }
 
   /**
+   * Put underlying cmake scripts in trace mode.
+   */
+  void SetTrace(bool val) { this->Trace = val; }
+
+  /**
+   * Put underlying cmake scripts in expanded trace mode.
+   */
+  void SetTraceExpand(bool val) { this->TraceExpand = val; }
+
+  /**
    * Returns true if the generator may work on this system.
    * Rational:
    * Some CPack generator may run on some host and may not on others
@@ -295,6 +305,8 @@ protected:
   ComponentPackageMethod componentPackageMethod;
 
   cmCPackLog* Logger;
+  bool Trace;
+  bool TraceExpand;
 
 private:
   cmMakefile* MakefileMap;
diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx
index addb54e..5016320 100644
--- a/Source/CPack/cpack.cxx
+++ b/Source/CPack/cpack.cxx
@@ -43,6 +43,8 @@ static const char* cmDocumentationOptions[][2] = {
   { "-D <var>=<value>", "Set a CPack variable." },
   { "--config <config file>", "Specify the config file." },
   { "--verbose,-V", "enable verbose output" },
+  { "--trace", "Put underlying cmake scripts in trace mode." },
+  { "--trace-expand", "Put underlying cmake scripts in expanded trace mode." },
   { "--debug", "enable debug output (for CPack developers)" },
   { "-P <package name>", "override/define CPACK_PACKAGE_NAME" },
   { "-R <package version>", "override/define CPACK_PACKAGE_VERSION" },
@@ -119,6 +121,8 @@ int main(int argc, char const* const* argv)
   bool help = false;
   bool helpVersion = false;
   bool verbose = false;
+  bool trace = false;
+  bool traceExpand = false;
   bool debug = false;
   std::string helpFull;
   std::string helpMAN;
@@ -154,6 +158,10 @@ int main(int argc, char const* const* argv)
   arg.AddArgument("--debug", argT::NO_ARGUMENT, &debug, "-V");
   arg.AddArgument("--config", argT::SPACE_ARGUMENT, &cpackConfigFile,
                   "CPack configuration file");
+  arg.AddArgument("--trace", argT::NO_ARGUMENT, &trace,
+                  "Put underlying cmake scripts in trace mode.");
+  arg.AddArgument("--trace-expand", argT::NO_ARGUMENT, &traceExpand,
+                  "Put underlying cmake scripts in expanded trace mode.");
   arg.AddArgument("-C", argT::SPACE_ARGUMENT, &cpackBuildConfig,
                   "CPack build configuration");
   arg.AddArgument("-G", argT::SPACE_ARGUMENT, &generator, "CPack generator");
@@ -197,6 +205,14 @@ int main(int argc, char const* const* argv)
   globalMF.AddDefinition("CMAKE_LEGACY_CYGWIN_WIN32", "0");
 #endif
 
+  if (trace) {
+    cminst.SetTrace(true);
+  }
+  if (traceExpand) {
+    cminst.SetTrace(true);
+    cminst.SetTraceExpand(true);
+  }
+
   bool cpackConfigFileSpecified = true;
   if (cpackConfigFile.empty()) {
     cpackConfigFile = cmSystemTools::GetCurrentWorkingDirectory();
@@ -340,6 +356,10 @@ int main(int argc, char const* const* argv)
                                                               << std::endl);
             parsed = 0;
           }
+
+          cpackGenerator->SetTrace(trace);
+          cpackGenerator->SetTraceExpand(traceExpand);
+
           if (parsed && !cpackGenerator->Initialize(gen, mf)) {
             cmCPack_Log(&log, cmCPackLog::LOG_ERROR,
                         "Cannot initialize the generator " << gen

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b1ae9aaf790757d3fa43cccbb0e935171c191fff
commit b1ae9aaf790757d3fa43cccbb0e935171c191fff
Author:     Kyle Edwards <kyle.edwards at kitware.com>
AuthorDate: Tue Jan 9 11:34:38 2018 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Jan 23 10:43:40 2018 -0500

    GenerateExportHeader: add release notes, tests for include guard changes

diff --git a/Help/release/dev/GenerateExportHeader-include-guard.rst b/Help/release/dev/GenerateExportHeader-include-guard.rst
new file mode 100644
index 0000000..fa2be42
--- /dev/null
+++ b/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.
diff --git a/Tests/RunCMake/GenerateExportHeader/GEH.cmake b/Tests/RunCMake/GenerateExportHeader/GEH.cmake
index cf81f36..ae9a84c 100644
--- a/Tests/RunCMake/GenerateExportHeader/GEH.cmake
+++ b/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()
diff --git a/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake b/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake
index 55625a8..18c3340 100644
--- a/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake
+++ b/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)
diff --git a/Tests/RunCMake/GenerateExportHeader/includeguard/CMakeLists.txt b/Tests/RunCMake/GenerateExportHeader/includeguard/CMakeLists.txt
new file mode 100644
index 0000000..514d27b
--- /dev/null
+++ b/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)
diff --git a/Tests/RunCMake/GenerateExportHeader/includeguard/libincludeguard.cpp b/Tests/RunCMake/GenerateExportHeader/includeguard/libincludeguard.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Tests/RunCMake/GenerateExportHeader/includeguard/main.cpp.in b/Tests/RunCMake/GenerateExportHeader/includeguard/main.cpp.in
new file mode 100644
index 0000000..51bd5d9
--- /dev/null
+++ b/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
+}
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/Empty/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Empty/libshared_export.h
index e8af0a5..0b1dcba 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/Empty/libshared_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/Empty/libshared_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/Empty/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Empty/libstatic_export.h
index 598bd71..5e3ac9f 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/Empty/libstatic_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/Empty/libstatic_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libshared_export.h
index cc20e09..dac4fda 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libshared_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libshared_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libstatic_export.h
index 4aaa848..b6e2a4a 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libstatic_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libstatic_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libshared_export.h
index 053ad18..11f8042 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libshared_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libshared_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libstatic_export.h
index 4aaa848..b6e2a4a 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libstatic_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libstatic_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h
index 808ff01..1481acd 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h
index 4aaa848..b6e2a4a 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libshared_export.h
index cc20e09..dac4fda 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libshared_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libshared_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h
index 4aaa848..b6e2a4a 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/Win32/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Win32/libshared_export.h
index 4e675af..3ba2d2e 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/Win32/libshared_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/Win32/libshared_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/Win32/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Win32/libstatic_export.h
index 4d5ed4e..3c7e093 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/Win32/libstatic_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/Win32/libstatic_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libshared_export.h
index 84340e3..bf9163e 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libshared_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libshared_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSHARED_EXPORT_H */
diff --git a/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libstatic_export.h
index 598bd71..5e3ac9f 100644
--- a/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libstatic_export.h
+++ b/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libstatic_export.h
@@ -39,4 +39,4 @@
 #  endif
 #endif
 
-#endif
+#endif /* LIBSTATIC_EXPORT_H */

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f4082b0e9b1ce139a29fba5951cec068862fe28b
commit f4082b0e9b1ce139a29fba5951cec068862fe28b
Author:     Kyle Edwards <kyle.edwards at kitware.com>
AuthorDate: Mon Jan 8 14:00:24 2018 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Jan 23 10:42:47 2018 -0500

    GenerateExportHeader: add INCLUDE_GUARD_NAME option
    
    Fixes #16968.

diff --git a/Modules/GenerateExportHeader.cmake b/Modules/GenerateExportHeader.cmake
index 4573c2e..17a3357 100644
--- a/Modules/GenerateExportHeader.cmake
+++ b/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)
 
diff --git a/Modules/exportheader.cmake.in b/Modules/exportheader.cmake.in
index 9dd75bf..c518b3d 100644
--- a/Modules/exportheader.cmake.in
+++ b/Modules/exportheader.cmake.in
@@ -39,4 +39,4 @@
 #  endif
 #endif
 @CUSTOM_CONTENT@
-#endif
+#endif /* @INCLUDE_GUARD_NAME@ */

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cd3e1600224a51cbc56b0d546a6f8486f1cf8d31
commit cd3e1600224a51cbc56b0d546a6f8486f1cf8d31
Author:     Christian Pfeiffer <cpfeiffer at live.de>
AuthorDate: Mon Jan 22 17:55:25 2018 +0100
Commit:     Christian Pfeiffer <cpfeiffer at live.de>
CommitDate: Tue Jan 23 12:46:08 2018 +0100

    GenericSystem: Remove misspelled flag default
    
    In CMakeGenericSystem, it should be ``CMAKE_INCLUDE_SEP_<LANG>`` and not
    ``CMAKE_INCLUDE_<LANG>_SEP``. However, if the flag is defined, include
    behavior changes to Java-style non-repeating flags, which isn't
    intended. Therefore, removing the (misspelled) default initialization
    should help remove confusion and unintended side effects.

diff --git a/Modules/CMakeCXXInformation.cmake b/Modules/CMakeCXXInformation.cmake
index 31ccef7..9ac9560 100644
--- a/Modules/CMakeCXXInformation.cmake
+++ b/Modules/CMakeCXXInformation.cmake
@@ -158,10 +158,6 @@ if(NOT CMAKE_INCLUDE_FLAG_CXX)
   set(CMAKE_INCLUDE_FLAG_CXX ${CMAKE_INCLUDE_FLAG_C})
 endif()
 
-if(NOT CMAKE_INCLUDE_FLAG_SEP_CXX)
-  set(CMAKE_INCLUDE_FLAG_SEP_CXX ${CMAKE_INCLUDE_FLAG_SEP_C})
-endif()
-
 # for most systems a module is the same as a shared library
 # so unless the variable CMAKE_MODULE_EXISTS is set just
 # copy the values from the LIBRARY variables
diff --git a/Modules/CMakeFortranInformation.cmake b/Modules/CMakeFortranInformation.cmake
index 8e5c027..5f028e4 100644
--- a/Modules/CMakeFortranInformation.cmake
+++ b/Modules/CMakeFortranInformation.cmake
@@ -151,10 +151,6 @@ if(NOT CMAKE_INCLUDE_FLAG_Fortran)
   set(CMAKE_INCLUDE_FLAG_Fortran ${CMAKE_INCLUDE_FLAG_C})
 endif()
 
-if(NOT CMAKE_INCLUDE_FLAG_SEP_Fortran)
-  set(CMAKE_INCLUDE_FLAG_SEP_Fortran ${CMAKE_INCLUDE_FLAG_SEP_C})
-endif()
-
 set(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make.  This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.")
 
 set(CMAKE_Fortran_FLAGS_INIT "$ENV{FFLAGS} ${CMAKE_Fortran_FLAGS_INIT}")
diff --git a/Modules/CMakeGenericSystem.cmake b/Modules/CMakeGenericSystem.cmake
index 3eb86f9..02cb464 100644
--- a/Modules/CMakeGenericSystem.cmake
+++ b/Modules/CMakeGenericSystem.cmake
@@ -9,7 +9,6 @@ set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")         # +s, flag for exe link to use
 set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "")       # -rpath
 set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "")   # : or empty
 set(CMAKE_INCLUDE_FLAG_C "-I")       # -I
-set(CMAKE_INCLUDE_FLAG_C_SEP "")     # , or empty
 set(CMAKE_LIBRARY_PATH_FLAG "-L")
 set(CMAKE_LIBRARY_PATH_TERMINATOR "")  # for the Digital Mars D compiler the link paths have to be terminated with a "/"
 set(CMAKE_LINK_LIBRARY_FLAG "-l")

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=da1a500ceee74e61c7f1e082618911bb5f98ece6
commit da1a500ceee74e61c7f1e082618911bb5f98ece6
Author:     Vitaly Stakhovsky <vvs31415 at gitlab.org>
AuthorDate: Mon Jan 22 19:34:40 2018 -0500
Commit:     Vitaly Stakhovsky <vvs31415 at gitlab.org>
CommitDate: Mon Jan 22 19:34:40 2018 -0500

    cmVisualStudio10TargetGenerator: remove redundant space char in some tags
    
    Many source tags become identical to those created by MSVC

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 1b09600..a511337 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1992,7 +1992,7 @@ void cmVisualStudio10TargetGenerator::WriteAllSources()
 
       if (si.Kind == cmGeneratorTarget::SourceKindObjectSource) {
         // FIXME: refactor generation to avoid tracking XML syntax state.
-        this->WriteSource(tool, si.Source, " ");
+        this->WriteSource(tool, si.Source, "");
         bool have_nested = this->OutputSourceSpecificFlags(si.Source);
         if (!exclude_configs.empty()) {
           if (!have_nested) {

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4829ea239aa2b45170ce841e14d8e1ec076240ee
commit 4829ea239aa2b45170ce841e14d8e1ec076240ee
Author:     Marc Chevrier <marc.chevrier at sap.com>
AuthorDate: Fri Jan 19 14:26:46 2018 +0100
Commit:     Marc Chevrier <marc.chevrier at sap.com>
CommitDate: Mon Jan 22 17:15:59 2018 +0100

    add_jar: add option GENERATE_NATIVE_HEADERS

diff --git a/Help/release/dev/UseJava-add_jar-native-headers.rst b/Help/release/dev/UseJava-add_jar-native-headers.rst
new file mode 100644
index 0000000..0370a67
--- /dev/null
+++ b/Help/release/dev/UseJava-add_jar-native-headers.rst
@@ -0,0 +1,9 @@
+UseJava-add_jar-native-headers
+------------------------------
+
+* | The command add_jar from :module:`UseJava` module learns how to generate native
+    headers files using option -h of javac tool.
+  | This capability requires, at least, version 1.8 of Javac tool.
+  | Command create_javah will no longer be supported due to the
+    `suppression of javah tool <http://openjdk.java.net/jeps/313>`_ in the version 1.10
+    of the JDK, so ``add_jar(GENERATE_NATIVE_HEADERS)`` must be used instead.
diff --git a/Modules/UseJava.cmake b/Modules/UseJava.cmake
index b5fc236..939bd7b 100644
--- a/Modules/UseJava.cmake
+++ b/Modules/UseJava.cmake
@@ -20,6 +20,7 @@
 #          [VERSION version]
 #          [OUTPUT_NAME name]
 #          [OUTPUT_DIR dir]
+#          [GENERATE_NATIVE_HEADERS target [DESTINATION dir]]
 #          )
 #
 # This command creates a <target_name>.jar.  It compiles the given
@@ -35,6 +36,14 @@
 # The default OUTPUT_DIR can also be changed by setting the variable
 # CMAKE_JAVA_TARGET_OUTPUT_DIR.
 #
+# Optionaly, using option GENERATE_NATIVE_HEADERS, native header files can be generated
+# for methods declared as native. These files provide the connective glue that allow your
+# Java and C code to interact. An INTERFACE target will be created for an easy usage
+# of generated files. Sub-option DESTINATION can be used to specify output directory for
+# generated header files.
+#
+# GENERATE_NATIVE_HEADERS option requires, at least, version 1.8 of the JDK.
+#
 # Additional instructions:
 #
 # ::
@@ -168,6 +177,22 @@
 #
 #
 #
+# ::
+#
+#     For an optimum usage of option GENERATE_NATIVE_HEADERS, it is recommended to
+#     include module JNI before any call to add_jar. The produced target for native
+#     headers can then be used to compile C/C++ sources with command
+#     target_link_libraries.
+#
+#
+# ::
+#
+#        find_package(JNI)
+#        add_jar(foo foo.java GENERATE_NATIVE_HEADERS foo-native)
+#        add_library(bar bar.cpp)
+#        target_link_libraries(bar PRIVATE foo-native)
+#
+#
 # Target Properties:
 #
 # ::
@@ -359,6 +384,10 @@
 # Create C header files from java classes. These files provide the connective glue
 # that allow your Java and C code to interact.
 #
+# This command will no longer be supported starting with version 1.10 of the JDK due
+# to the `suppression of javah tool <http://openjdk.java.net/jeps/313>`_.
+# Command ``add_jar(GENERATE_NATIVE_HEADERS)`` must be used instead.
+#
 # There are two main signatures for create_javah.  The first signature
 # returns generated files through variable specified by GENERATED_FILES option:
 #
@@ -448,7 +477,7 @@ function(add_jar _TARGET_NAME)
     cmake_parse_arguments(_add_jar
       ""
       "VERSION;OUTPUT_DIR;OUTPUT_NAME;ENTRY_POINT;MANIFEST"
-      "SOURCES;INCLUDE_JARS"
+      "SOURCES;INCLUDE_JARS;GENERATE_NATIVE_HEADERS"
       ${ARGN}
     )
 
@@ -494,6 +523,31 @@ function(add_jar _TARGET_NAME)
         get_filename_component (_MANIFEST_VALUE "${_add_jar_MANIFEST}" ABSOLUTE)
     endif ()
 
+    unset (_GENERATE_NATIVE_HEADERS)
+    if (_add_jar_GENERATE_NATIVE_HEADERS)
+      # Raise an error if JDK version is less than 1.8 because javac -h is not supported
+      # by earlier versions.
+      if ("${Java_VERSION}" VERSION_LESS 1.8)
+        message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS is not supported with this version of Java.")
+      endif()
+      cmake_parse_arguments (_add_jar_GENERATE_NATIVE_HEADERS "" "DESTINATION" "" ${_add_jar_GENERATE_NATIVE_HEADERS})
+      if (NOT _add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS)
+        message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS: missing required argument.")
+      endif()
+      list (LENGTH _add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS length)
+      if (length GREATER 1)
+        list (REMOVE_AT _add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS 0)
+        message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS: ${_add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS}: unexpected argument(s).")
+      endif()
+      if (NOT _add_jar_GENERATE_NATIVE_HEADERS_DESTINATION)
+        set (_add_jar_GENERATE_NATIVE_HEADERS_DESTINATION "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_TARGET_NAME}.dir/native_headers")
+      endif()
+
+      set (_GENERATE_NATIVE_HEADERS_TARGET ${_add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS})
+      set (_GENERATE_NATIVE_HEADERS_OUTPUT_DIR "${_add_jar_GENERATE_NATIVE_HEADERS_DESTINATION}")
+      set (_GENERATE_NATIVE_HEADERS -h "${_GENERATE_NATIVE_HEADERS_OUTPUT_DIR}")
+    endif()
+
     if (LIBRARY_OUTPUT_PATH)
         set(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH})
     else ()
@@ -625,6 +679,7 @@ function(add_jar _TARGET_NAME)
                 ${CMAKE_JAVA_COMPILE_FLAGS}
                 -classpath "${CMAKE_JAVA_INCLUDE_PATH_FINAL}"
                 -d ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
+                ${_GENERATE_NATIVE_HEADERS}
                 ${_JAVA_SOURCES_FILELISTS}
             COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
             DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS}
@@ -735,6 +790,17 @@ function(add_jar _TARGET_NAME)
                 ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
     )
 
+  if (_GENERATE_NATIVE_HEADERS)
+    # create an INTERFACE library encapsulating include directory for generated headers
+    add_library (${_GENERATE_NATIVE_HEADERS_TARGET} INTERFACE)
+    target_include_directories (${_GENERATE_NATIVE_HEADERS_TARGET} INTERFACE
+      "${_GENERATE_NATIVE_HEADERS_OUTPUT_DIR}"
+      ${JNI_INCLUDE_DIRS})
+    # this INTERFACE library depends on jar generation
+    add_dependencies (${_GENERATE_NATIVE_HEADERS_TARGET} ${_TARGET_NAME})
+
+    set_property (DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${_GENERATE_NATIVE_HEADERS_OUTPUT_DIR}")
+  endif()
 endfunction()
 
 function(INSTALL_JAR _TARGET_NAME)
@@ -1246,6 +1312,12 @@ function(create_javadoc _target)
 endfunction()
 
 function (create_javah)
+  if ("${Java_VERSION}" VERSION_GREATER_EQUAL 1.10)
+    message (FATAL_ERROR "create_javah: not supported with this Java version. Use add_jar(GENERATE_NATIVE_HEADERS) instead.")
+  elseif ("${Java_VERSION}" VERSION_GREATER_EQUAL 1.8)
+    message (DEPRECATION "create_javah: this command will no longer be supported starting with version 1.10 of JDK. Update your project by using command add_jar(GENERATE_NATIVE_HEADERS) instead.")
+  endif()
+
     cmake_parse_arguments(_create_javah
       ""
       "TARGET;GENERATED_FILES;OUTPUT_NAME;OUTPUT_DIR"
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index fb7313f..506e995 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -3195,29 +3195,51 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
           --test-command ${JAVA_RUNTIME} -classpath hello3.jar HelloWorld)
         list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaJarSourceListAndOutput")
 
-        # For next test, java tool must have same architecture as toolchain
+        # For next tests, java tool must have same architecture as toolchain
         math(EXPR _object_mode "${CMAKE_SIZEOF_VOID_P} * 8")
         execute_process(
           COMMAND "${Java_JAVA_EXECUTABLE}" -d${_object_mode} -version
           OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE _result
           )
         if(_result EQUAL 0)
-          if(_isMultiConfig)
-            set (JAVAH_LIBRARY_PATH ${CMake_BINARY_DIR}/Tests/JavaJavah/$<CONFIGURATION>)
-          else()
-            set (JAVAH_LIBRARY_PATH ${CMake_BINARY_DIR}/Tests/JavaJavah)
+          ## next test is valid only if Java version is less than 1.10
+          if ("${Java_VERSION}" VERSION_LESS 1.10)
+            if(_isMultiConfig)
+              set (JAVAH_LIBRARY_PATH ${CMake_BINARY_DIR}/Tests/JavaJavah/$<CONFIGURATION>)
+            else()
+              set (JAVAH_LIBRARY_PATH ${CMake_BINARY_DIR}/Tests/JavaJavah)
+            endif()
+            add_test(NAME Java.Javah COMMAND ${CMAKE_CTEST_COMMAND}
+              --build-and-test
+              "${CMake_SOURCE_DIR}/Tests/JavaJavah"
+              "${CMake_BINARY_DIR}/Tests/JavaJavah"
+              ${build_generator_args}
+              --build-project helloJavah
+              --build-two-config
+              --build-run-dir "${CMake_BINARY_DIR}/Tests/JavaJavah/"
+              --build-options ${build_options}
+              --test-command ${JAVA_RUNTIME} -Djava.library.path=${JAVAH_LIBRARY_PATH} -classpath hello3.jar HelloWorld2)
+            list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaJavah")
+          endif()
+          ## next test is valid only if Java is, at least, version 1.8
+          if (NOT "${Java_VERSION}" VERSION_LESS 1.8)
+            if(_isMultiConfig)
+              set (JAVANATIVEHEADERS_LIBRARY_PATH ${CMake_BINARY_DIR}/Tests/JavaNativeHeaders/$<CONFIGURATION>)
+            else()
+              set (JAVANATIVEHEADERS_LIBRARY_PATH ${CMake_BINARY_DIR}/Tests/JavaNativeHeaders)
+            endif()
+            add_test(NAME Java.NativeHeaders COMMAND ${CMAKE_CTEST_COMMAND}
+              --build-and-test
+              "${CMake_SOURCE_DIR}/Tests/JavaNativeHeaders"
+              "${CMake_BINARY_DIR}/Tests/JavaNativeHeaders"
+              ${build_generator_args}
+              --build-project helloJavaNativeHeaders
+              --build-two-config
+              --build-run-dir "${CMake_BINARY_DIR}/Tests/JavaNativeHeaders/"
+              --build-options ${build_options}
+              --test-command ${JAVA_RUNTIME} -Djava.library.path=${JAVANATIVEHEADERS_LIBRARY_PATH} -classpath hello4.jar HelloWorld3)
+            list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaNativeHeaders")
           endif()
-          add_test(NAME Java.Javah COMMAND ${CMAKE_CTEST_COMMAND}
-            --build-and-test
-            "${CMake_SOURCE_DIR}/Tests/JavaJavah"
-            "${CMake_BINARY_DIR}/Tests/JavaJavah"
-            ${build_generator_args}
-            --build-project helloJavah
-            --build-two-config
-            --build-run-dir "${CMake_BINARY_DIR}/Tests/JavaJavah/"
-            --build-options ${build_options}
-            --test-command ${JAVA_RUNTIME} -Djava.library.path=${JAVAH_LIBRARY_PATH} -classpath hello3.jar HelloWorld2)
-          list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaJavah")
         endif()
       endif()
     endif()
diff --git a/Tests/JavaNativeHeaders/CMakeLists.txt b/Tests/JavaNativeHeaders/CMakeLists.txt
new file mode 100644
index 0000000..7dc2679
--- /dev/null
+++ b/Tests/JavaNativeHeaders/CMakeLists.txt
@@ -0,0 +1,18 @@
+project(helloJavaNativeHeaders Java CXX)
+
+cmake_minimum_required (VERSION 2.6)
+set(CMAKE_VERBOSE_MAKEFILE 1)
+
+find_package(Java COMPONENTS Development)
+include (UseJava)
+
+# JNI support
+find_package(JNI)
+
+add_jar(B1 D.java GENERATE_NATIVE_HEADERS D1-native)
+add_jar(E1 E.java GENERATE_NATIVE_HEADERS E1-native)
+
+add_jar(hello4 HelloWorld3.java)
+
+add_library(D SHARED D.cpp E.cpp)
+target_link_libraries (D PRIVATE D1-native E1-native)
diff --git a/Tests/JavaNativeHeaders/D.cpp b/Tests/JavaNativeHeaders/D.cpp
new file mode 100644
index 0000000..2a90a08
--- /dev/null
+++ b/Tests/JavaNativeHeaders/D.cpp
@@ -0,0 +1,10 @@
+
+#include <jni.h>
+#include <stdio.h>
+
+#include "D.h"
+
+JNIEXPORT void JNICALL Java_D_printName(JNIEnv*, jobject)
+{
+  printf("D\n");
+}
diff --git a/Tests/JavaNativeHeaders/D.java b/Tests/JavaNativeHeaders/D.java
new file mode 100644
index 0000000..449c0df
--- /dev/null
+++ b/Tests/JavaNativeHeaders/D.java
@@ -0,0 +1,19 @@
+class D
+{
+  public D()
+    {
+    }
+
+    public native void printName();
+
+    static {
+        try {
+
+            System.loadLibrary("D");
+
+        } catch (UnsatisfiedLinkError e) {
+            System.err.println("Native code library failed to load.\n" + e);
+            System.exit(1);
+        }
+    }
+}
diff --git a/Tests/JavaNativeHeaders/E.cpp b/Tests/JavaNativeHeaders/E.cpp
new file mode 100644
index 0000000..fb98946
--- /dev/null
+++ b/Tests/JavaNativeHeaders/E.cpp
@@ -0,0 +1,10 @@
+
+#include <jni.h>
+#include <stdio.h>
+
+#include "E.h"
+
+JNIEXPORT void JNICALL Java_E_printName(JNIEnv*, jobject)
+{
+  printf("E\n");
+}
diff --git a/Tests/JavaNativeHeaders/E.java b/Tests/JavaNativeHeaders/E.java
new file mode 100644
index 0000000..30fd95a
--- /dev/null
+++ b/Tests/JavaNativeHeaders/E.java
@@ -0,0 +1,19 @@
+class E
+{
+  public E()
+    {
+    }
+
+    public native void printName();
+
+    static {
+        try {
+
+            System.loadLibrary("D");
+
+        } catch (UnsatisfiedLinkError e) {
+            System.err.println("Native code library failed to load.\n" + e);
+            System.exit(1);
+        }
+    }
+}
diff --git a/Tests/JavaNativeHeaders/HelloWorld3.java b/Tests/JavaNativeHeaders/HelloWorld3.java
new file mode 100644
index 0000000..77f1fed
--- /dev/null
+++ b/Tests/JavaNativeHeaders/HelloWorld3.java
@@ -0,0 +1,15 @@
+class HelloWorld3
+{
+    public static void main(String args[])
+    {
+        D d;
+        d = new D();
+        d.printName();
+
+        E e;
+        e = new E();
+        e.printName();
+
+        System.out.println("Hello World!");
+    }
+}

-----------------------------------------------------------------------

Summary of changes:
 Help/manual/cpack.1.rst                            |    6 ++
 .../dev/GenerateExportHeader-include-guard.rst     |    8 +++
 .../release/dev/UseJava-add_jar-native-headers.rst |    9 +++
 Help/release/dev/cpack_trace.rst                   |    4 ++
 Modules/CMakeCXXInformation.cmake                  |    4 --
 Modules/CMakeFortranInformation.cmake              |    4 --
 Modules/CMakeGenericSystem.cmake                   |    1 -
 Modules/GenerateExportHeader.cmake                 |    9 ++-
 Modules/UseJava.cmake                              |   74 +++++++++++++++++++-
 Modules/exportheader.cmake.in                      |    2 +-
 Source/CPack/cmCPackGenerator.cxx                  |    2 +
 Source/CPack/cmCPackGenerator.h                    |   12 ++++
 Source/CPack/cpack.cxx                             |   20 ++++++
 Source/cmVisualStudio10TargetGenerator.cxx         |    2 +-
 Tests/CMakeLists.txt                               |   54 +++++++++-----
 Tests/JavaNativeHeaders/CMakeLists.txt             |   18 +++++
 Tests/JavaNativeHeaders/D.cpp                      |   10 +++
 .../{JavaJavah/B.java => JavaNativeHeaders/D.java} |    6 +-
 Tests/JavaNativeHeaders/E.cpp                      |   10 +++
 .../{JavaJavah/C.java => JavaNativeHeaders/E.java} |    6 +-
 Tests/JavaNativeHeaders/HelloWorld3.java           |   15 ++++
 Tests/RunCMake/GenerateExportHeader/GEH.cmake      |    1 +
 .../GenerateExportHeader/RunCMakeTest.cmake        |    2 +
 .../includeguard/CMakeLists.txt                    |   19 +++++
 .../includeguard/libincludeguard.cpp               |    0
 .../GenerateExportHeader/includeguard/main.cpp.in  |   10 +++
 .../reference/Empty/libshared_export.h             |    2 +-
 .../reference/Empty/libstatic_export.h             |    2 +-
 .../reference/MinGW/libshared_export.h             |    2 +-
 .../reference/MinGW/libstatic_export.h             |    2 +-
 .../reference/UNIX/libshared_export.h              |    2 +-
 .../reference/UNIX/libstatic_export.h              |    2 +-
 .../UNIX_DeprecatedOnly/libshared_export.h         |    2 +-
 .../UNIX_DeprecatedOnly/libstatic_export.h         |    2 +-
 .../reference/Win32-Clang/libshared_export.h       |    2 +-
 .../reference/Win32-Clang/libstatic_export.h       |    2 +-
 .../reference/Win32/libshared_export.h             |    2 +-
 .../reference/Win32/libstatic_export.h             |    2 +-
 .../reference/WinEmpty/libshared_export.h          |    2 +-
 .../reference/WinEmpty/libstatic_export.h          |    2 +-
 40 files changed, 286 insertions(+), 50 deletions(-)
 create mode 100644 Help/release/dev/GenerateExportHeader-include-guard.rst
 create mode 100644 Help/release/dev/UseJava-add_jar-native-headers.rst
 create mode 100644 Help/release/dev/cpack_trace.rst
 create mode 100644 Tests/JavaNativeHeaders/CMakeLists.txt
 create mode 100644 Tests/JavaNativeHeaders/D.cpp
 copy Tests/{JavaJavah/B.java => JavaNativeHeaders/D.java} (80%)
 create mode 100644 Tests/JavaNativeHeaders/E.cpp
 copy Tests/{JavaJavah/C.java => JavaNativeHeaders/E.java} (80%)
 create mode 100644 Tests/JavaNativeHeaders/HelloWorld3.java
 create mode 100644 Tests/RunCMake/GenerateExportHeader/includeguard/CMakeLists.txt
 copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/GenerateExportHeader/includeguard/libincludeguard.cpp (100%)
 create mode 100644 Tests/RunCMake/GenerateExportHeader/includeguard/main.cpp.in


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list