Commit Graph

78 Commits

Author SHA1 Message Date
Gold856
ea62c44b64 UseJava: Reduce add_jar verbosity by default
Set "Clean class files" message to verbose.

Fixes: #22107
2024-08-13 15:56:39 -04:00
Brad King
2744f14db1 codespell: Fix typos 2023-11-17 09:58:21 -05:00
Brad King
301279e4a9 Help: Replace link with its permanent redirect 2023-03-18 08:46:12 -04:00
Brad King
e159b5b2ae Merge topic 'doc-improvements'
d4d1f85297 Help: Move a note about arguments and genexes into include file
968224484f Help: Drop unused `PROPERTY_GENEX` replace from `prop_tgt/INTERFACE_*` files
65457e4fae Help: Add _See Also_ sections to related CMake commands
c86ec79d07 Help: Use direct refs to genexes instead of ``$<GENEX-NAME>``
8c6274326d Help: Use CMake highlighting for command synopsis
c356a94512 Help: Use monospaced font for a genex name in a section title
f98c8707f4 Help: Use `code-block:: cmake` instead of `::` for sub-commands descriptions
2ba351ca4f Help: ``CMake`` → CMake
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7873
2022-11-10 10:11:22 -05:00
Alex Turbov
2ba351ca4f
Help: `CMake` → CMake 2022-11-07 22:55:06 +04:00
Alex Turbov
435b0c573c Help: Fix some redirects reported with sphinx linkcheck
Mostly it's about replace `http:` with `https:` protocol.
2022-11-07 10:07:36 -05:00
Marc Chevrier
af9bd6c53f Help: UseJava reorganization
Fixes: #22155
2021-06-24 11:04:01 -04:00
Marc Chevrier
a42add6cd6 UseJava: Add version for RESOURCES option 2021-05-30 14:53:05 +02:00
Brad King
f89c1a559d UseJava: Avoid non-word "compilability" in documentation
Also fix spelling in the release note from commit 3e03f359a7 (UseJava:
Add RESOURCES with NAMESPACE to add_jar(), 2021-04-27).
2021-05-12 07:35:16 -04:00
Smit tay
3e03f359a7 UseJava: Add RESOURCES with NAMESPACE to add_jar()
add_jar() currently requires (undocumented) that resources be supplied
as relative paths.  The resources *may* then end up in a path which does
not reflect the original path particularly when performing out-of-source
builds.  This change adds a RESOURCE (and NAMESPACE) parameter and a
function to add the names resources into the named namespace within the
jar- and thus address both of these problems.

Fixes: #22101
2021-05-10 10:48:46 -04:00
Marc Chevrier
53235626a2 UseJava: enable exportation of native headers target 2020-12-29 17:14:20 +01:00
Nikita Nemkin
8fea95319b Help: Add .. versionadded directives to module docs
Issue: #19715
2020-12-02 21:00:30 +05:00
Nikita Nemkin
cb28d9af1f UseJava: Move helper scripts to subdirectory
Also, exclude them from the help module index.
2020-11-12 20:14:05 +05:00
Brad King
01d5b888a3 UseJava: Quote -classpath argument correctly on more platforms
Add the `VERBATIM` option to our `add_custom_command` calls so that all
arguments are correctly escaped for the shell.  Otherwise when using a
POSIX shell on Windows, the `-classpath` separator is `;` and without
quoting ends the command.

Fixes: #20567
Inspired-by: Nevyn Bengtsson <nevyn.jpg@gmail.com>
2020-04-10 10:59:30 -04:00
Alexey Karndshev
4559eb490a UseJava: clean class files from previous builds
If java_class_filelist exists, remove previous class files before building the
new ones. If java_sources content has changed, clean and rebuild the class
files of the target.

Fixes: #20377
2020-04-06 16:58:10 +02:00
Kyle Edwards
966a9eece3 Merge topic 'function-var-current'
24fdd51f45 Refactor: Replace CMAKE_CURRENT_LIST_DIR with CMAKE_CURRENT_FUNCTION_LIST_DIR
90e3e2a777 cmFunctionCommand: Introduce `CMAKE_CURRENT_FUNCTION*` variables
dd54290dab Refactor: Modernize `function` command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !4000
2019-12-12 14:00:41 -05:00
Alex Turbov
24fdd51f45 Refactor: Replace CMAKE_CURRENT_LIST_DIR with CMAKE_CURRENT_FUNCTION_LIST_DIR
Some modules define an intermediate global scope visible variables
to access "resource" files from functions.
Now these variables could be eliminated.
2019-12-10 16:43:27 +02:00
Nathan Burles
8d47b97a69 UseJava: Use correct path separator in javadoc
For both classpath and sourcepath.
2019-11-20 10:38:44 -05:00
Nathan Burles
1b27ac78ac UseJava: Use list(APPEND) to simplify javadoc option construction 2019-11-20 10:38:44 -05:00
Nathan Burles
c7a4b1a58e UseJava: Extract the path separator to module level
It is currently only defined within the add_jar function, but is needed
inside other functions in this module.
2019-11-20 10:38:44 -05:00
Sebastian Holtermann
8c47be28cc UseJava: Use ADDITIONAL_CLEAN_FILES for cleaning
Replace use of the deprecated `ADDITIONAL_MAKE_CLEAN_FILES` directory property
with the new `ADDITIONAL_CLEAN_FILES` directory property.
2019-05-15 15:31:05 +02:00
Robert Maynard
359e2d401d UseJava: Refactor documentation for better formatting
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
2019-05-15 22:54:15 +10:00
Marc Chevrier
95ef818c7d UseJava: clean-up if() expressions
Fixes: #18836
2019-01-28 18:43:50 +01:00
Marc Chevrier
5aa88f0e02 UseJava: add_jar: rebuild jar on dependencies changes
Fixes: #18683
2018-12-11 15:17:24 +01:00
Kitware Robot
df4ed1e9ff Help: Convert remaining modules to block-style comments 2018-10-22 11:09:34 -04:00
Brad King
ea54a9c666 Merge branch 'backport-java-new-packaging' into java-new-packaging
Fix conflicts by combining the changes from both sides.
2018-04-25 09:19:35 -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
luz.paz
193082a3c8 MAINT: Misc. typos
Found via `codespell -q 3 -I ../cmake-whitelist.txt`.
2018-02-13 11:24:30 -05:00
Marc Chevrier
4829ea239a add_jar: add option GENERATE_NATIVE_HEADERS 2018-01-22 17:15:59 +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
Marc Chevrier
48dcb2f055 UseJava: add_jar OUTPUT_DIR option used only for jar generation.
Build artifacts go to CMAKE_CURRENT_BINARY_DIR subdirectory in all cases.

Fixes: #17341
2017-10-12 13:05:17 +02:00
Marc Chevrier
dead049e0b UseJava: OUTPUT_DIR must exists in all cases.
Fixes: #17316
2017-10-10 10:00:23 +02:00
Daniel Pfeifer
9e24af0137 Use string(APPEND) in Modules
Automate with:

find Modules -type f -print0 | xargs -0 perl -i -0pe \
  's/set\(([a-zA-Z0-9_\$\{\}]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
2017-05-17 11:26:11 -06:00
Matthew Woehlke
789c8de3df UseJava: Support namespaced exports
Add NAMESPACE option to export_jars and install_jar_exports. Import
JAR's as imported static libraries rather than custom targets, as this
is necessary to allow the imported targets to contain ':' in their
names. (This also means they won't show up in VS projects, which is more
consistent with other imported targets.) Also, improve the documentation
to be more stylistically consistent with documentation elsewhere.
2017-04-21 10:51:09 -04:00
Daniel Pfeifer
d6877e6c40 Don't include CMakeParseArguments
The cmake_parse_arguments command is builtin with version 3.5.
The CMakeParseArguments module is empty and exists for backwards
compatibility with CMake 3.4 and lower.

Remove the includes of CMakeParseArguments from CMake's modules.
The modules are always used with the current version of CMake.

Leave the includes in the tests, as the tests may be run with an older
version of CMake.
2017-01-11 13:14:57 +01: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
Daniel Pfeifer
5d0d980d99 Use string(APPEND) in Modules
Automate with:

find Modules -type f -print0 | xargs -0 perl -i -0pe \
's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
2016-07-28 00:41:13 +02:00
Matthew Woehlke
0bd91ad405 UseJava: Fix race condition creating java class list
Modify logic to unconditionally create an empty class list response file
to instead only create the empty file if no classes are being compiled.
Otherwise, the response file is created via a custom command that
generates the correct list.

This fixes a race condition on certain systems (e.g. HFS on OS X) where
the dependency for creating the "correct" list can have the "same" (due
to limited precision of the filesystem) timestamp as the empty file
created at configure time, resulting in an empty class list being
incorrectly used to invoke `jar` (resulting in `jar` being unhappy that
it was not given any input files). Although one would have some hope
that this doesn't affect "real" projects, it definitely does affect the
JavaExportImport unit test, causing the same to fail randomly when run
on an HFS partition.
2016-06-09 09:12:15 -04:00
Matthew Woehlke
5341c0d84a UseJava: Add infrastructure to export targets
Add additional functions to UseJava.cmake to create "exported" targets,
similar to those of C/C++ libraries. In support of this, ensure that the
JAR_FILE property of jar targets is always an absolute path.
2016-06-07 08:50:35 -04:00
Matthew Woehlke
bcf3968851 UseJava: Fix grammar error in documentation 2016-05-31 10:30:57 -04:00
Brad King
fa382ae85e UseJava: use CMAKE_COMMAND instead of direct cmake call
Author: dancing-leaves <dancing-leaves@users.noreply.github.com>
2016-04-06 13:46:51 -04:00
Felix Geyer
49e82c15d5 Fix spelling typos in comments and documentation (#16037)
The Debian package checker tool (lintian) detected several typos in
CMake.
2016-03-29 14:31:02 -04:00
Brad King
1053db7b0c UseJava: Fix documented name of CLASSDIR property (#15936)
It is not `CLASS_DIR`.
2016-01-26 09:27:21 -05:00
Marc Chevrier
18c3714f4f UseJava: Fix create_javah CLASSPATH handling on Windows
Preserve semicolons in the value.
2016-01-19 10:36:11 -05:00
Marc Chevrier
56c11eee13 UseJava: Allow relative path to manifest file just as with other sources 2015-12-03 09:24:26 -05:00
Marc Chevrier
4476feac33 UseJava: Add support for javah tool
Add a `create_javah` API.
2015-08-21 09:30:08 -04:00
Marc Chevrier
cc23f0e9d3 UseJava: Teach install_jar new DESTINATION and COMPONENT options 2015-08-04 11:19:44 -04:00
Marc Chevrier
3d287de4ea UseJava: Teach add_jar to support file syntax for sources 2015-08-04 11:19:43 -04:00
Mark Studenka
a21e8df0da UseJava: Fix add_jar argument parsing (#14655)
Since commit v2.8.11~63^2 (UseJava.cmake: require explicit request to
include jars, 2013-03-26) the argument parsing always overrides the
variable settings even if the corresponding arguments are not passed.
Re-order logic to fix this.
2015-03-20 10:46:13 -04:00
Lorenz Witte
7a373d5e55 UseJava: Fix classpath separator on WIN32 cross compilation (#15206)
The condition to use ";" as classpath separator includes a check for the
switch "WIN32" which is a target switch.  When cross-compiling for a
non-windows target, this switch is not present and the separator
defaults to ":".  It should check for "CMAKE_HOST_WIN32" instead.
2014-10-14 10:02:19 -04:00