summaryrefslogtreecommitdiffstats
path: root/Modules/UseSWIG.cmake
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@sap.com>2018-03-20 09:56:28 (GMT)
committerBrad King <brad.king@kitware.com>2018-03-22 15:18:17 (GMT)
commit51b642679bc5dc675ab0e4e3fe7dc4c053ba60f4 (patch)
tree7edf634fa6c463747bdbde9cb5a2593d752b007e /Modules/UseSWIG.cmake
parent5831b6a2aec74cd9d1d10b1d047da8fa0411c828 (diff)
downloadCMake-51b642679bc5dc675ab0e4e3fe7dc4c053ba60f4.zip
CMake-51b642679bc5dc675ab0e4e3fe7dc4c053ba60f4.tar.gz
CMake-51b642679bc5dc675ab0e4e3fe7dc4c053ba60f4.tar.bz2
UseSWIG: fix prefix library for Java on Windows
Fixes: #17836
Diffstat (limited to 'Modules/UseSWIG.cmake')
-rw-r--r--Modules/UseSWIG.cmake26
1 files changed, 17 insertions, 9 deletions
diff --git a/Modules/UseSWIG.cmake b/Modules/UseSWIG.cmake
index 6d35d1b..8e7ca41 100644
--- a/Modules/UseSWIG.cmake
+++ b/Modules/UseSWIG.cmake
@@ -507,15 +507,18 @@ function(SWIG_ADD_LIBRARY name)
elseif (swig_lowercase_language STREQUAL "go")
set_target_properties(${name} PROPERTIES PREFIX "")
elseif (swig_lowercase_language STREQUAL "java")
+ # In java you want:
+ # System.loadLibrary("LIBRARY");
+ # then JNI will look for a library whose name is platform dependent, namely
+ # MacOS : libLIBRARY.jnilib
+ # Windows: LIBRARY.dll
+ # Linux : libLIBRARY.so
if (APPLE)
- # In java you want:
- # System.loadLibrary("LIBRARY");
- # then JNI will look for a library whose name is platform dependent, namely
- # MacOS : libLIBRARY.jnilib
- # Windows: LIBRARY.dll
- # Linux : libLIBRARY.so
- set_target_properties (${name} PROPERTIES SUFFIX ".jnilib")
- endif ()
+ set_target_properties (${name} PROPERTIES SUFFIX ".jnilib")
+ endif()
+ if ((WIN32 AND MINGW) OR CYGWIN OR CMAKE_SYSTEM_NAME STREQUAL MSYS)
+ set_target_properties(${name} PROPERTIES PREFIX "")
+ endif()
elseif (swig_lowercase_language STREQUAL "lua")
if(_SAM_TYPE STREQUAL "MODULE")
set_target_properties(${name} PROPERTIES PREFIX "")
@@ -560,11 +563,16 @@ function(SWIG_ADD_LIBRARY name)
# target property SWIG_SUPPORT_FILES lists proxy support files
if (NOT SWIG_MODULE_${name}_NOPROXY)
string(TOUPPER "${_SAM_LANGUAGE}" swig_uppercase_language)
+ set(swig_all_support_files)
foreach (swig_it IN LISTS SWIG_${swig_uppercase_language}_EXTRA_FILE_EXTENSIONS)
set (swig_support_files ${swig_generated_sources})
list (FILTER swig_support_files INCLUDE REGEX ".*${swig_it}$")
- set_property (TARGET ${name} APPEND PROPERTY SWIG_SUPPORT_FILES ${swig_support_files})
+ list(APPEND swig_all_support_files ${swig_support_files})
endforeach()
+ if (swig_all_support_files)
+ list(REMOVE_DUPLICATES swig_all_support_files)
+ endif()
+ set_property (TARGET ${name} APPEND PROPERTY SWIG_SUPPORT_FILES ${swig_all_support_files})
endif()
# to ensure legacy behavior, export some variables