mirror of
https://github.com/reactos/CMake.git
synced 2025-03-05 02:17:05 +00:00
UseSWIG: Add -dllimport
only if not already specified
SWIG fails with a redefined macro error when `-dllimport` is specified more than once. One case where you would want to specify your own dllimport is when using SWIG with netstandard2.0. .NET Core does not search for shared library like Mono or .NET, so you need a fully qualified shared library name.
This commit is contained in:
parent
ee47d80c3b
commit
76a0286b1d
@ -82,10 +82,6 @@ macro(SWIG_MODULE_INITIALIZE name language)
|
||||
set(SWIG_MODULE_${name}_REAL_NAME "_${name}")
|
||||
elseif("x${SWIG_MODULE_${name}_LANGUAGE}" STREQUAL "xPERL")
|
||||
set(SWIG_MODULE_${name}_EXTRA_FLAGS "-shadow")
|
||||
elseif("x${SWIG_MODULE_${name}_LANGUAGE}" STREQUAL "xCSHARP")
|
||||
# This makes sure that the name used in the generated DllImport
|
||||
# matches the library name created by CMake
|
||||
set(SWIG_MODULE_${name}_EXTRA_FLAGS "-dllimport;${name}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
@ -192,6 +188,13 @@ macro(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
|
||||
if(swig_source_file_cplusplus)
|
||||
set(swig_special_flags ${swig_special_flags} "-c++")
|
||||
endif()
|
||||
if("x${SWIG_MODULE_${name}_LANGUAGE}" STREQUAL "xCSHARP")
|
||||
if(NOT ";${swig_source_file_flags};${CMAKE_SWIG_FLAGS};" MATCHES ";-dllimport;")
|
||||
# This makes sure that the name used in the generated DllImport
|
||||
# matches the library name created by CMake
|
||||
set(SWIG_MODULE_${name}_EXTRA_FLAGS "-dllimport;${name}")
|
||||
endif()
|
||||
endif()
|
||||
set(swig_extra_flags)
|
||||
if(SWIG_MODULE_${name}_EXTRA_FLAGS)
|
||||
set(swig_extra_flags ${swig_extra_flags} ${SWIG_MODULE_${name}_EXTRA_FLAGS})
|
||||
|
Loading…
x
Reference in New Issue
Block a user