summaryrefslogtreecommitdiff
path: root/Modules/FindJava.cmake
Commit message (Collapse)AuthorAgeFilesLines
* FindJava: improve failure/verbosity when 'java -version' failsSeth R Johnson2022-05-311-20/+26
| | | | | | | | | | | | | | | On macOS monterey, `java -version` returns ``` The operation couldn’t be completed. Unable to locate a Java Runtime. Please visit http://www.java.com for information on installing Java. ``` which does not match the existing regex. Instead of hitting a fatal error if required, reset the variable and let FindPackage handle the result. If `QUIET` is requested, don't print anything if the version query fails. Otherwise, print the message. Additionally, clean up temporary variables set by the execute_process commands.
* FindJava, FindJNI: ensure correct handling of versions on WindowsMarc Chevrier2022-05-051-32/+17
| | | | | | | * versions are sorted in correct order * EXACT keyword is taken into account Fixes: #23479
* Help: Add `.. versionadded` directives to module docsNikita Nemkin2020-12-021-1/+6
| | | | Issue: #19715
* FindJava: Update check to avoid accepting macOS stub 'java' as JavaBrad King2020-07-081-3/+2
| | | | | | | | | | | | | | | | | Since commit dd378258f1 (FindJava: Do not accept OS X stub 'java' as Java, 2014-10-24, v3.1.0-rc3~29^2) we try to avoid using the macOS `/usr/bin/java` stub if no underlying implementation of Java is actually installed. However, the message that `/usr/bin/java` prints when there is no Java available has changed since then. Update our check to also look for the new message. While at it, revise the way we suppress `Java_JAVA_EXECUTABLE`. Previously we set its cache entry to `Java_JAVA_EXECUTABLE-NOTFOUND`, but that would cause the same find-and-reject sequence to be followed every time CMake runs in a build tree. Instead, use the approach from commit 2c0db404d1 (FindSubversion: Do not accept macOS stub without Xcode implementation, 2020-05-28, v3.18.0-rc1~67^2). Leave the cache entry alone and just set a normal variable of the same name to hide it.
* FindJava: ensure all versions can be foundMarc Chevrier2019-10-021-2/+2
| | | | Fixes: #19765
* Help: Convert remaining modules to block-style commentsKitware Robot2018-10-221-73/+74
|
* FindJava: Update module documentationBartosz Kosiorek2018-10-031-10/+15
|
* Merge topic 'java-new-packaging-fixes'Brad King2018-05-081-1/+1
|\ | | | | | | | | | | | | b4e1569315 FindJava, FindJNI: fix erroneous regex, enhance registry lookup Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2042
| * FindJava, FindJNI: fix erroneous regex, enhance registry lookupMarc Chevrier2018-05-071-1/+1
| |
* | Merge topic 'java-new-packaging-version-sort'Brad King2018-04-301-4/+16
|\ \ | |/ | | | | | | | | | | 1013560a6a FindJava, FindJNI: Ensure most recent version is searched first Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2016
| * FindJava, FindJNI: Ensure most recent version is searched firstMarc Chevrier2018-04-271-4/+16
| |
* | Merge branch 'backport-java-new-packaging' into java-new-packagingBrad King2018-04-251-5/+39
|\ \ | |/ | | | | Fix conflicts by combining the changes from both sides.
| * FindJava, FindJNI, UseJava: update for version 10 supportMarc Chevrier2018-04-251-5/+39
| | | | | | | | | | | | | | * new version format * new registry layout on Windows Fixes: #17938
* | FindJava: Add Java_JAR_EXECUTABLE to a component: DevelopmentGiel van Schijndel2018-02-271-4/+4
|/ | | | | | | All discovered executables were placed in a component, except for 'jar'. This forced the use of find_package(Java) without any component specification. This commit adds 'jar' to the 'Development' component, because that's what it's used for.
* FindJava: ignore javah for JDK 10, it has been removedStefan Brüns2018-01-191-9/+25
| | | | | | | | | The standalone javah tool has been removed, header generation happens during execution of javac. `javac -h` allows generation of headers only. See http://openjdk.java.net/projects/jdk/10/ and http://openjdk.java.net/jeps/313 for details. Fixes: #17613
* FindJava: Revise version parsing to support Java 9Brad King2017-10-061-25/+42
| | | | | | | | Java 9 has only one component. Revise the logic to tolerate any number of version components 1 through 4. Fix the parsing of individual components. Fixes: #17325
* Merge topic 'FindJava-fix-1.6-registry'Brad King2017-08-021-1/+1
|\ | | | | | | | | | | | | 5479074b FindJava: fix hint for windows jre 1.6 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1079
| * FindJava: fix hint for windows jre 1.6Rechi Rechi2017-08-021-1/+1
| | | | | | | | | | Fix typo in commit v3.8.0-rc1~112^2 (FindJava: add hints for jre, 2017-01-11).
* | Allow early access version trailing string to be mixed caseCraig Scott2017-07-251-1/+1
|/ | | | | The original regex was expecting to match strings like "ea", but it has been reported that other strings like "Debian" are also possible.
* FindJava: Add support for OpenJDK early access buildsBryan Donlan2017-05-041-0/+3
| | | | | | | | OpenJDK 9 early access builds use a version string of "9-ea", and locally built installations use "9-internal", neither of which is currently accepted by the FindJava macro. Map those versions to "1.9". If the final released version is "9.0" the version interpretation could be changed to match at that time.
* FindJava: add hints for jreRechi Rechi2017-01-111-0/+8
|
* Find*.cmake: drop the comments before including FPHSARolf Eike Beer2016-11-281-1/+0
| | | | | No need to explain this over and over again. While at it, do some other minor cleanups to whitespace and comments (i.e. delete them).
* Simplify CMake per-source license noticesBrad King2016-09-271-14/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* FindJava: Do not document variables we do not provideBrad King2016-07-051-2/+1
| | | | | | Drop Java_INCLUDE_DIRS and Java_LIBRARIES from the documentation since we do not provide them. Also add a link to FindJNI to help users find it. Fixes #16180.
* Fix spelling typos in comments and documentation (#16037)Felix Geyer2016-03-291-1/+1
| | | | | The Debian package checker tool (lintian) detected several typos in CMake.
* FindJava: Fix typos in IdlJ and JarSigner component implementationMarc Chevrier2015-12-031-3/+3
| | | | | | Fix typos introduced by commit v3.4.0-rc1~257^2~2 (FindJava: Add support for idlj and jarsigner tools, 2015-07-31) to correctly report when these components are found.
* FindJava: Add support for idlj and jarsigner toolsMarc Chevrier2015-08-041-23/+71
|
* FindJava: Fix OpenJDK 8 version detection (#15565)Felix Geyer2015-05-121-1/+1
| | | | | | The openjdk-8 (8u45-b14-2) package on Debian unstable has extra text after the version number components. Match this and add it to the reported version string.
* Merge topic 'FindJava-no-osx-stub'Brad King2014-11-201-1/+4
|\ | | | | | | | | dd378258 FindJava: Do not accept OS X stub 'java' as Java
| * FindJava: Do not accept OS X stub 'java' as JavaBrad King2014-11-191-1/+4
| | | | | | | | | | | | | | | | OS X provides a stub 'java' to inform callers that Java is not present. When checking the 'java -version' output, look for such a message and if found pretend 'java' was not found. Suggested-by: Sean McBride <sean@rogue-research.com>
* | Modules: Wrap long lines in pre-formatted documentation blocksBrad King2014-11-061-1/+1
|/ | | | Help format the blocks better for display without a wide screen.
* Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex)Rolf Eike Beer2014-04-141-9/+6
| | | | | | The matches have already been calculated and can simply be taken from CMAKE_MATCH_n variables. This avoids multiple compilations of the same or very similar regular expressions.
* Find{Java,JNI}: Consider JAVA_HOME before ENV{JAVA_HOME}Brad King2014-01-291-3/+5
| | | | | | Add a helper module CMakeFindJavaCommon shared between FindJava and FindJNI to select a JAVA_HOME value. Prefer a CMake variable or cache entry first, then an environment variable.
* Find{Java,JNI}: Use ENV{JAVA_HOME} first when setBrad King2014-01-291-2/+7
| | | | | | Use list(APPEND) instead of set() to append to lists. When ENV{JAVA_HOME} is set explicitly place values based on it at the front their lists.
* FindJava: fix message output (#14502)Rolf Eike Beer2013-10-221-1/+1
|
* Convert builtin help to reStructuredText source filesKitware Robot2013-10-151-30/+41
| | | | | | | | Run the convert-help.bash script to convert documentation: ./convert-help.bash "/path/to/CMake-build/bin" Then remove it.
* OpenBSD: Add paths for Java 1.6.0/1.7.0 JRE/JDKAmit Kulkarni2012-12-041-0/+7
|
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-5/+5
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-38/+38
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-2/+2
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* FindJava: improve version matching (#12878)Rolf Eike Beer2012-06-251-3/+3
|
* remove extra output message from FindJava.cmakeRolf Eike Beer2011-08-031-5/+0
| | | | | FPHSA already prints out the version number. And this line was printed on every subsequent CMake run.
* Merge topic 'asn_java_support'Brad King2011-07-261-0/+18
|\ | | | | | | | | | | | | | | | | | | | | | | | | 1417a55 Java: Fix documentation format and indentation 0b7627d Java: Use set_property/get_property for target variables. b01a505 Java: Create correct jar archive dependencies. f99c312 Java: Added some dependency magic to avoid recompilations. f3233ba Java: Create java_class_filelist only if it does't exist. a22ed3d Tests: Check for the new Java exeutable variables. c177c8e Tests: Java tests should test UseJava.cmake 5c2106c Modules: Added CMake Java support. a4b6275 FindJava: Find missing java development executables.
| * FindJava: Find missing java development executables.Andreas Schneider2011-03-291-0/+18
| |
* | Add support for Java on HPMathieu Malaterre2011-04-081-4/+4
|/ | | | | This commit fixes Bug: 0011676 by adding support for version numbering of JRE used on HP: 1.6.0.06-jinteg_20_jan_2010_05_50-b00
* Modules: Include builtin FindPackageHandleStandardArgs directlyBrad King2011-01-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The FindPackageHandleStandardArgs module was originally created outside of CMake. It was added for CMake 2.6.0 by commit e118a627 (add a macro FIND_PACKAGE_HANDLE_STANDARD_ARGS..., 2007-07-18). However, it also proliferated into a number of other projects that at the time required only CMake 2.4 and thus could not depend on CMake to provide the module. CMake's own find modules started using the module in commit b5f656e0 (use the new FIND_PACKAGE_HANDLE_STANDARD_ARGS in some of the FindXXX modules..., 2007-07-18). Then commit d358cf5c (add 2nd, more powerful mode to find_package_handle_standard_args, 2010-07-29) added a new feature to the interface of the module that was fully optional and backward compatible with all existing users of the module. Later commit 5f183caa (FindZLIB: use the FPHSA version mode, 2010-08-04) and others shortly thereafter started using the new interface in CMake's own find modules. This change was also backward compatible because it was only an implementation detail within each module. Unforutnately these changes introduced a problem for projects that still have an old copy of FindPackageHandleStandardArgs in CMAKE_MODULE_PATH. When any such project uses one of CMake's builtin find modules the line include(FindPackageHandleStandardArgs) loads the copy from the project which does not have the new interface! Then the including find module tries to use the new interface with the old module and fails. Whether this breakage can be considered a backward incompatible change in CMake is debatable. The situation is analagous to copying a standard library header from one version of a compiler into a project and then observing problems when the next version of the compiler reports errors in its other headers that depend on its new version of the original header. Nevertheless it is a change to CMake that causes problems for projects that worked with previous versions. This problem was discovered during the 2.8.3 release candidate cycle. It is an instance of a more general problem with projects that provide their own versions of CMake modules when other CMake modules depend on them. At the time we resolved this instance of the problem with commit b0118402 (Use absolute path to FindPackageHandleStandardArgs.cmake everywhere, 2010-09-28) for the 2.8.3 release. In order to address the more general problem we introduced policy CMP0017 in commit db44848f (Prefer files from CMAKE_ROOT when including from CMAKE_ROOT, 2010-11-17). That change was followed by commit ce28737c (Remove usage of CMAKE_CURRENT_LIST_DIR now that we have CMP0017, 2010-12-20) which reverted the original workaround in favor of using the policy. However, existing project releases do not set the policy behavior to NEW and therefore still exhibit the problem. We introduced in commit a364daf1 (Allow users to specify defaults for unset policies, 2011-01-03) an option for users to build existing projects by adding -DCMAKE_POLICY_DEFAULT_CMP0017=NEW to the command line. Unfortunately this solution still does not allow such projects to build out of the box, and there is no good way to suggest the use of the new option. The only remaining solution to keep existing projects that exhibit this problem building is to restore the change originally made in commit b0118402 (Use absolute path to FindPackageHandleStandardArgs.cmake everywhere, 2010-09-28). This also avoids policy CMP0017 warnings for this particular instance of the problem the policy addresses.
* Remove usage of CMAKE_CURRENT_LIST_DIR now that we have CMP0017Alex Neundorf2011-01-041-1/+1
| | | | | | | | This puts the new search behaviour for included files in action, i.e. now when a file from Modules/ include()s another file, it also gets the one from Modules/ included, i.e. the one it expects. Alex
* Use absolute path to FindPackageHandleStandardArgs.cmake everywhereAlex Neundorf2010-09-281-1/+1
| | | | | | | This is to avoid getting an (older) copy of FPHSA.cmake which is e.g. installed with KDE 4.5.0 and 4.5.1. Alex
* Merge topic 'ImprovedVersionCheckingInSomeModules'Brad King2010-08-101-29/+15
|\ | | | | | | | | | | | | | | | | | | | | | | | | 430336c Merge branch 'findsubversion_fphsa_cleanup' b6c6156 Use FPHSA() in FindSWIG, including version checking. 656cd2f Improved version checking for FindCUDA using the new mode of FPHSA 126db7b Improved version checking for FindSubversion using the new mode of FPHSA() 77d909b Fix DETAILS string with version number in FHPSA() 19b68b9 Improved version checking for FindJava using the new FPHSA() mode 6bb0b6e Improved version checking for FindRuby using the new mode of FPHSA() 946493f FindSquish doesn't detect the version, remove that from the documentation cb9d1ea Add version checking support to FindFlex and FindPerlLibs
| * Improved version checking for FindJava using the new FPHSA() modeAlex Neundorf2010-08-071-29/+15
| | | | | | | | Alex