Skip to content
Snippets Groups Projects
Commit 1820c7e7 authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic 'SWIG'


e3919bae UseSWIG: Manage alternate library name

Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
Merge-request: !3241
parents b9ee95fe e3919bae
No related branches found
No related tags found
No related merge requests found
UseSWIG-alternate-library-name
------------------------------
* The :module:`UseSWIG` module learned to manage alternate library names by
passing ``-interface <library_name>`` for ``python`` language or
``-dllimport <library_name>`` for ``CSharp`` language to the ``SWIG``
compiler.
......@@ -466,7 +466,14 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
if(NOT ("-dllimport" IN_LIST swig_source_file_flags OR "-dllimport" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS))
# This makes sure that the name used in the generated DllImport
# matches the library name created by CMake
list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-dllimport" "${name}")
list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-dllimport" "$<TARGET_FILE_PREFIX:${target_name}>$<TARGET_FILE_BASE_NAME:${target_name}>")
endif()
endif()
if (SWIG_MODULE_${name}_LANGUAGE STREQUAL "PYTHON" AND NOT SWIG_MODULE_${name}_NOPROXY)
if(NOT ("-interface" IN_LIST swig_source_file_flags OR "-interface" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS))
# This makes sure that the name used in the proxy code
# matches the library name created by CMake
list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-interface" "$<TARGET_FILE_PREFIX:${target_name}>$<TARGET_FILE_BASE_NAME:${target_name}>")
endif()
endif()
list (APPEND swig_extra_flags ${SWIG_MODULE_${name}_EXTRA_FLAGS})
......
cmake_minimum_required(VERSION 3.14...3.15)
project(TestAlternateLibraryName CXX)
include(CTest)
find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})
find_package(Python2 REQUIRED COMPONENTS Interpreter Development)
# Path separator
if (WIN32)
set (PS "$<SEMICOLON>")
else()
set (PS ":")
endif()
unset(CMAKE_SWIG_FLAGS)
set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/../example.i" PROPERTY CPLUSPLUS ON)
set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/../example.i" PROPERTY COMPILE_OPTIONS -includeall)
swig_add_library(example_python
LANGUAGE python
SOURCES ../example.i ../example.cxx)
set_target_properties (example_python PROPERTIES
INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/.."
SWIG_USE_TARGET_INCLUDE_DIRECTORIES TRUE)
target_link_libraries(example_python PRIVATE Python2::Python)
add_test (NAME AlternateLibraryName.example1
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}${PS}$<TARGET_FILE_DIR:example_python>"
"${Python2_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/../runme.py")
......@@ -123,3 +123,15 @@ add_test(NAME UseSWIG.SwigSrcFileExtension COMMAND
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME UseSWIG.AlternateLibraryName COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/UseSWIG/AlternateLibraryName"
"${CMake_BINARY_DIR}/Tests/UseSWIG/AlternateLibraryName"
${build_generator_args}
--build-project TestAlternateLibraryName
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment