summaryrefslogtreecommitdiff
path: root/Modules/UseJava.cmake
diff options
context:
space:
mode:
authorMark Studenka <mstudenka@perseus.co>2015-03-19 10:55:00 -0400
committerBrad King <brad.king@kitware.com>2015-03-20 10:46:13 -0400
commita21e8df0da0d43f8c678d4c07f731035d04c0e27 (patch)
treece2d700267561962477d499979ba8479aa08554e /Modules/UseJava.cmake
parentc95e523db87cd503c97ca2a6021614393bb33e0b (diff)
downloadcmake-a21e8df0da0d43f8c678d4c07f731035d04c0e27.tar.gz
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.
Diffstat (limited to 'Modules/UseJava.cmake')
-rw-r--r--Modules/UseJava.cmake22
1 files changed, 11 insertions, 11 deletions
diff --git a/Modules/UseJava.cmake b/Modules/UseJava.cmake
index 3a6acd8621..5eb0ca8c17 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)