Merge topic 'UseSWIG-fix-library-prefix'

51b642679b UseSWIG: fix prefix library for Java on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Mathieu Malaterre <mathieu.malaterre@gmail.com>
Merge-request: !1871
This commit is contained in:
Brad King 2018-03-26 12:01:51 +00:00 committed by Kitware Robot
commit 6792c7787a
2 changed files with 23 additions and 9 deletions

View File

@ -0,0 +1,6 @@
UseSWIG-fix-library-prefix
--------------------------
* The :module:`UseSWIG` module :command:`swig_add_library` command
(and legacy ``swig_add_module`` command) now set the prefix of
Java modules to ``""`` for MINGW, MSYS, and CYGWIN environments.

View File

@ -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