View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0014655 | CMake | CMake | public | 2013-12-18 15:13 | 2015-11-02 09:13 | ||||
Reporter | Steve Wolak | ||||||||
Assigned To | |||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | x64 | OS | Windows | OS Version | 7 | ||||
Product Version | CMake 2.8.12 | ||||||||
Target Version | CMake 3.3 | Fixed in Version | CMake 3.3 | ||||||
Summary | 0014655: Setting CMAKE_JAVA_TARGET_OUTPUT_DIR does not set the output for NMake type generator | ||||||||
Description | Setting CMAKE_JAVA_TARGET_OUTPUT_DIR to the desired output path seems to have no affect when using NMake as the generator. | ||||||||
Steps To Reproduce | include(UseJava) set(CMAKE_JAVA_TARGET_OUTPUT_DIR <insert your preferred dir here>) add_jar(<add your sources>) The jar will continue to be placed into the current binary directory. According to documentation: "The default OUTPUT_DIR can also be changed by setting the variable CMAKE_JAVA_TARGET_OUTPUT_DIR." | ||||||||
Additional Information | This appears to be happening because of the use of cmake_parse_arguments in UseJava.cmake. _add_jar_OUTPUT_DIR is setup correctly with CMAKE_JAVA_TARGET_OUTPUT_DIR until that is called. As there is a work around for this (using OUTPUT_DIR in the add_jar command), I logged it as minor. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0034808) Brad King (manager) 2013-12-18 15:57 |
For reference, use of cmake_parse_arguments was added here: UseJava.cmake: require explicit request to include jars http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8a2fca8c [^] and released first in CMake 2.8.11. |
(0038259) Mark Studenka (reporter) 2015-03-19 10:55 |
Here's a patch that fixes this issue for me. It should also fix the other global java variables (CMAKE_JAVA_TARGET_VERSION, CMAKE_JAVA_TARGET_OUTPUT_NAME, CMAKE_JAVA_JAR_ENTRY_POINT) --- Modules/UseJava.cmake | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Modules/UseJava.cmake b/Modules/UseJava.cmake index 3a6acd8..5eb0ca8 100644 --- a/Modules/UseJava.cmake +++ b/Modules/UseJava.cmake @@ -340,6 +340,13 @@ set(_JAVA_SYMLINK_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/UseJavaSymlinks.cmake) function(add_jar _TARGET_NAME) + cmake_parse_arguments(_add_jar + "" + "VERSION;OUTPUT_DIR;OUTPUT_NAME;ENTRY_POINT;MANIFEST" + "SOURCES;INCLUDE_JARS" + ${ARGN} + ) + # In CMake < 2.8.12, add_jar used variables which were set prior to calling # add_jar for customizing the behavior of add_jar. In order to be backwards # compatible, check if any of those variables are set, and use them to @@ -347,28 +354,21 @@ function(add_jar _TARGET_NAME) # argument will override the value set here.) # # New features should use named arguments only. - if(DEFINED CMAKE_JAVA_TARGET_VERSION) + if(NOT DEFINED _add_jar_VERSION AND DEFINED CMAKE_JAVA_TARGET_VERSION) set(_add_jar_VERSION "${CMAKE_JAVA_TARGET_VERSION}") endif() - if(DEFINED CMAKE_JAVA_TARGET_OUTPUT_DIR) + if(NOT DEFINED _add_jar_OUTPUT_DIR AND DEFINED CMAKE_JAVA_TARGET_OUTPUT_DIR) set(_add_jar_OUTPUT_DIR "${CMAKE_JAVA_TARGET_OUTPUT_DIR}") endif() - if(DEFINED CMAKE_JAVA_TARGET_OUTPUT_NAME) + if(NOT DEFINED _add_jar_OUTPUT_NAME AND DEFINED CMAKE_JAVA_TARGET_OUTPUT_NAME) set(_add_jar_OUTPUT_NAME "${CMAKE_JAVA_TARGET_OUTPUT_NAME}") # reset set(CMAKE_JAVA_TARGET_OUTPUT_NAME) endif() - if(DEFINED CMAKE_JAVA_JAR_ENTRY_POINT) + if(NOT DEFINED _add_jar_ENTRY_POINT AND DEFINED CMAKE_JAVA_JAR_ENTRY_POINT) set(_add_jar_ENTRY_POINT "${CMAKE_JAVA_JAR_ENTRY_POINT}") endif() - cmake_parse_arguments(_add_jar - "" - "VERSION;OUTPUT_DIR;OUTPUT_NAME;ENTRY_POINT;MANIFEST" - "SOURCES;INCLUDE_JARS" - ${ARGN} - ) - set(_JAVA_SOURCE_FILES ${_add_jar_SOURCES} ${_add_jar_UNPARSED_ARGUMENTS}) if (NOT DEFINED _add_jar_OUTPUT_DIR) -- |
(0038265) Brad King (manager) 2015-03-20 10:49 |
Re 0014655:0038259: Thanks! Applied: UseJava: Fix add_jar argument parsing http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a21e8df0 [^] |
(0039740) Robert Maynard (manager) 2015-11-02 09:13 |
Closing resolved issues that have not been updated in more than 4 months. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2013-12-18 15:13 | Steve Wolak | New Issue | |
2013-12-18 15:57 | Brad King | Note Added: 0034808 | |
2015-03-19 10:55 | Mark Studenka | Note Added: 0038259 | |
2015-03-20 10:49 | Brad King | Note Added: 0038265 | |
2015-03-20 10:50 | Brad King | Resolution | open => fixed |
2015-03-20 10:50 | Brad King | Fixed in Version | => CMake 3.3 |
2015-03-20 10:50 | Brad King | Target Version | => CMake 3.3 |
2015-03-20 10:50 | Brad King | Status | new => resolved |
2015-11-02 09:13 | Robert Maynard | Note Added: 0039740 | |
2015-11-02 09:13 | Robert Maynard | Status | resolved => closed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |