103 Commits

Author SHA1 Message Date
Sergiu Deitsch
c833df0924 FindJNI: replace CMAKE_ANDROID_API by CMAKE_SYSTEM_VERSION
In commit 00c4f488f2 (FindJNI: support Android NDK, 2022-03-18,
v3.24.0-rc1~325^2) we used `CMAKE_ANDROID_API` to check the Android API
level.  However, `CMAKE_SYSTEM_VERSION` is the authoritative value.

When cross-compiling for Android, an unset `CMAKE_ANDROID_API` can
result in failure to locate JNI because the `NativeHelper` component
cannot be found. In this case, the component is falsely assumed to be
available by default (and thus required) since the comparison against an
unset `CMAKE_ANDROID_API` variable evaluates to true.  Use
`CMAKE_SYSTEM_VERSION` to determine the Android API level instead.

Issue: #23830
2022-10-17 15:51:10 -04:00
Marc Chevrier
c80763c701 Merge branch 'backport-3.23-Java-version-handling' into Java-version-handling 2022-05-05 11:18:55 +02:00
Marc Chevrier
93e18a4eb6 FindJava, FindJNI: ensure correct handling of versions on Windows
* versions are sorted in correct order
* EXACT keyword is taken into account

Fixes: #23479
2022-05-05 11:14:52 +02:00
Sergiu Deitsch
00c4f488f2 FindJNI: support Android NDK 2022-04-05 23:56:28 +02:00
Sergiu Deitsch
171d45c039 FindJNI: added components and imported targets 2022-04-04 19:46:32 +02:00
Sergiu Deitsch
35e92ec619 FindJNI: improved description 2022-04-04 19:46:32 +02:00
Josef Angstenberger
dad5b9d845 Modules: Fix typos and spelling in comments 2021-05-07 17:00:15 +02:00
Adriaan de Groot
79bfa0f75e FindJNI: Search in FreeBSD standard locations 2020-10-07 10:12:49 -04:00
Brad King
696d16ae6c FindJNI: Add aarch64 support
Extend the fix from commit 44dffbcc94 (FindJNI: Add arm64 support,
2020-08-25, v3.18.3~21^2) to cover the `aarch64` name too.

Fixes: #21237
2020-09-25 12:04:34 -04:00
Malcolm Parsons
44dffbcc94 FindJNI: Add arm64 support
On 64-bit ARM, JVM directories have an arm64 suffix.
2020-08-25 14:34:02 -04:00
Marc Chevrier
3d02593986 FindJava: ensure all versions can be found
Fixes: #19765
2019-10-02 14:47:11 +02:00
Christian Pfeiffer
77cede0977 FindJNI: Unify path search, fix support for Java 9
Java 9 restructured the standard location of the AWT libraries due to
the removal of the JRE/JDK separation. We should check all possible
combinations of subdirectories to the Java root directories to ensure
that the libraries will be found after an upgrade.

Furthermore, a root directory would contain both, include and library
paths, so the search should be unified to ease maintenance on the
module.
2019-03-01 08:53:26 -05:00
Bartosz Kosiorek
047bf93748 FindJNI: Update module documentation 2018-10-03 07:49:49 -04:00
Bartosz Kosiorek
b6104f87cc FindJNI: Add Ubuntu 18.04 path to java-11-openjdk 2018-10-03 07:48:44 -04:00
Marc Chevrier
b4e1569315 FindJava, FindJNI: fix erroneous regex, enhance registry lookup 2018-05-07 09:40:55 -04:00
Marc Chevrier
1013560a6a FindJava, FindJNI: Ensure most recent version is searched first 2018-04-27 08:52:22 -04:00
Marc Chevrier
5482f485b8 FindJava, FindJNI, UseJava: update for version 10 support
* new version format
* new registry layout on Windows

Fixes: #17938
2018-04-25 09:18:53 -04:00
YunQiang Su
8c92596e96 FindJNI: add some new architecture names for mips release 6 2018-03-14 11:17:19 -04:00
Christian Pfeiffer
f88ef9a9b8 Modules: Remove paths set as global Unix prefixes
This commit removes hardcoded paths that are already given in the
platform files or in `UnixPath` on a global level.
2017-11-20 16:21:49 +01:00
luzpaz
777e87ae00 Fix trivial typos in text
Some are user facing.

Found using

    codespell -q 3 --skip="./Utilities" -I .cmake-whitelist.txt`

whereby the whitelist contained:

    ans
    dum
    helpfull
    emmited
    emmitted
    buil
    iff
    isnt
    nto
    ot
    pathes
    substract
    te
    todays
    upto
    whitespaces
2017-11-03 10:25:05 -04:00
Kitsu
d0ada3e218 FindJNI: Add jvm paths for Arch Linux 2017-03-03 08:14:34 -05:00
Brad King
c1f97af640 Merge topic 'simplify-license-notices'
19671831 Help: Update cmake-developer(7) module license docs for new notice
756169ac Tests: Update ModuleNotices test for new notice
845d86bc Utilities/Scripts: Remove temporary script that filtered license notices
86578ecc Simplify CMake per-source license notices
b7180cfe Utilities/Scripts: Add temporary script to filter license notices
7feb4ecc Copyright.txt: Add notice of copyright by contributors
78f77f60 Utilities/KWStyle: Remove unused header check reference file
681e0429 Tests: Fix RunCMake.CTest output match to tolerate line number changes
2016-09-28 08:05:10 -04:00
Brad King
86578eccf2 Simplify CMake per-source license notices
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.
2016-09-27 15:14:44 -04:00
Orion Poplawski
59eb75d9d2 FindJNI: Add aarch32 path on arm 2016-09-27 08:31:02 -04:00
Brad King
7c8c07d03c Merge topic 'FindJNI-cleanup'
4e11c966 FindJNI: Improve formatting of FPHSA call
2016-07-06 09:36:10 -04:00
O Libre
4e11c9660f FindJNI: Improve formatting of FPHSA call
Pass one argument per line for better readability.
2016-07-05 14:35:24 -04:00
O Libre
26d16380b0 FindJNI: Fix support for Ubuntu 15.10
The library search paths added by commit v3.6.0-rc1~281^2~1 (FindJNI:
Add support for Ubuntu 15.10, 2016-03-08) were incorrect.  Fix them.
2016-07-05 14:33:46 -04:00
O. Libre
1b029ea91f FindJNI: Append path only "if(EXISTS" 2016-03-09 08:55:13 -05:00
O. Libre
add2557865 FindJNI: Add support for Ubuntu 15.10
- Reuse JAVA_APPEND_LIBRARY_DIRECTORIES for JAVA_AWT_INCLUDE_DIRECTORIES
- Append three directories /usr/lib/jvm/java-{8,7,6}-openjdk-{libarch}
2016-03-09 08:55:13 -05:00
Marc Chevrier
4d4fcabdfd FindJNI: Add support for AIX java sdk 2015-12-04 09:31:35 -05:00
Yunqiang Su
90a22c3ac5 FindJNI: Add mips64(el) mipsn32(el) support (#15714)
Submitted-by: Felix Geyer <fgeyer@debian.org>
2015-08-28 09:37:22 -04:00
Marc Chevrier
290b0f94b5 FindJNI: Add support for SuSE platform and IBM Java SDK 2015-08-25 09:47:05 -04:00
Thorsten Glaser
c4d78b8bc0 FindJNI: Add support for x32 architecture on Linux (#15710)
This architecture uses an amd64 kernel but x32 userland.
Use CMAKE_LIBRARY_ARCHITECTURE to distinguish it for now.
2015-08-24 10:54:13 -04:00
Tiago Stürmer Daitx
bce4e20f78 FindJNI: Add arch-specific library dir for JDK 9 layout (#15408)
JDK9's directory structure changes and no jdk/jre exists.  The arch
lib path is now jdk/lib/<arch> (instead of jdk/jre/lib/<arch>).
2015-02-18 09:19:17 -05:00
Dinar Valeev
18ac6713e8 FindJNI: search for ppc64 on ppc64le as well
IcedTea 2.5 have changed libarch for ppc64le to ppc64. Adjust FindJNI
to look for both for backward compatibility.

Signed-off-by: Dinar Valeev <dvaleev@suse.com>
2014-07-01 12:07:37 +02:00
Dinar Valeev
ac2527e1d9 FindJNI: Add ppc64le architecture
Signed-off-by: Dinar Valeev <dvaleev@suse.com>
2014-02-18 08:30:51 -05:00
Brad King
70560ee146 FindJNI: Overhaul finding JDK libraries and headers on OS X
Drop the hard-coded framework paths and "-framework JavaJM" on APPLE.

Save and restore the value of CMAKE_FIND_FRAMEWORK.  Use its value to
choose and order between a normal search for jvm&jawt and a framework
search for JavaVM.  When JAVA_HOME is set explicitly by the user then
force a normal search by setting CMAKE_FIND_FRAMEWORK to NEVER.  Once
the library is found, set CMAKE_FIND_FRAMEWORK to help find_path locate
the matching headers (framework v. normal).
2014-01-29 14:12:54 -05:00
Brad King
fcd66a7f7b Find{Java,JNI}: Consider JAVA_HOME before ENV{JAVA_HOME}
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.
2014-01-29 14:12:54 -05:00
Brad King
4b3614b25a Find{Java,JNI}: Use ENV{JAVA_HOME} first when set
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.
2014-01-29 14:02:29 -05:00
Joe Abbey
519084cd2e FindJNI: Set JAVA_INCLUDE_PATH2 for darwin (#14508) 2014-01-09 09:59:56 -05:00
Modestas Vainius
cde56c1223 FindJNI: Support biarch installations (#14541)
On biarch architecture, CMAKE_SYSTEM_PROCESSOR might be a 64bit one
while the system 32bit one. Take this into consideration while looking
for Java library directory.

Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718290
2013-11-04 08:55:02 -05:00
Kitware Robot
f051814ed0 Convert builtin help to reStructuredText source files
Run the convert-help.bash script to convert documentation:

 ./convert-help.bash "/path/to/CMake-build/bin"

Then remove it.
2013-10-15 14:12:03 -04:00
Amit Kulkarni
6e7a3453b4 OpenBSD: Add paths for Java 1.6.0/1.7.0 JRE/JDK 2012-12-04 08:35:23 -05:00
Kitware Robot
9db3116226 Remove CMake-language block-end command arguments
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
2012-08-13 14:19:16 -04:00
Kitware Robot
77543bde41 Convert CMake-language commands to lower case
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
2012-08-13 14:19:16 -04:00
Kitware Robot
7bbaa4283d Remove trailing whitespace from most CMake and C/C++ code
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/ \+$//'
2012-08-13 14:18:39 -04:00
Christoph Höger
93fc629adc FindJNI: Search in Fedora arch-specific JVM location (#12276) 2011-06-15 13:18:14 -04:00
Brad King
bc888800f5 Merge topic 'fixbug_0011183'
a59d198 Add support for java on fedora
2011-04-12 14:43:59 -04:00
Mathieu Malaterre
4f35488fe9 Add support for FindJava on HP-UX and alpha
This commit fixes BUG: 0010242. It now properly inspect specific directory
on hp-ux and alpha implementation of the JRE
2011-04-08 15:19:28 +02:00
Mathieu Malaterre
a59d198aa3 Add support for java on fedora
This commit fixes BUG: 0011183 by adding new paths used on fedora,
specifically: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0
2011-04-08 15:12:23 +02:00