Browse Source

UseSWIG: Add support of perl5 language

Marc Chevrier 3 years ago
parent
commit
989b469f1c

+ 4 - 0
Help/release/dev/UseSWIG-perl5.rst

@@ -0,0 +1,4 @@
+UseSWIG-perl5
+-------------
+
+* The :module:`UseSWIG` module gained the support of ``perl5`` language.

+ 4 - 3
Modules/UseSWIG.cmake

@@ -378,6 +378,7 @@ set(SWIG_PYTHON_EXTRA_FILE_EXTENSIONS ".py")
 set(SWIG_JAVA_EXTRA_FILE_EXTENSIONS ".java" "JNI.java")
 set(SWIG_CSHARP_EXTRA_FILE_EXTENSIONS ".cs" "PINVOKE.cs")
 set(SWIG_PERL_EXTRA_FILE_EXTENSIONS ".pm")
+set(SWIG_PERL5_EXTRA_FILE_EXTENSIONS ".pm")
 
 set(SWIG_MANAGE_SUPPORT_FILES_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/UseSWIG/ManageSupportFiles.cmake")
 
@@ -414,8 +415,8 @@ macro(SWIG_MODULE_INITIALIZE name language)
   endif()
   if(SWIG_MODULE_${name}_LANGUAGE STREQUAL "UNKNOWN")
     message(FATAL_ERROR "SWIG Error: Language \"${language}\" not found")
-  elseif(SWIG_MODULE_${name}_LANGUAGE STREQUAL "PERL" AND
-         NOT "-shadow" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS)
+  elseif((SWIG_MODULE_${name}_LANGUAGE STREQUAL "PERL" OR SWIG_MODULE_${name}_LANGUAGE STREQUAL "PERL5")
+      AND NOT "-shadow" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS)
     list(APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-shadow")
   endif()
 endmacro()
@@ -971,7 +972,7 @@ function(SWIG_ADD_LIBRARY name)
     if (APPLE)
       set_target_properties (${target_name} PROPERTIES SUFFIX ".bundle")
     endif ()
-  elseif (swig_lowercase_language STREQUAL "perl")
+  elseif (swig_lowercase_language STREQUAL "perl" OR swig_lowercase_language STREQUAL "perl5")
     # assume empty prefix because we expect the module to be dynamically loaded
     set_target_properties (${target_name} PROPERTIES PREFIX "")
     if (APPLE)

+ 3 - 1
Tests/UseSWIG/BasicPerl/CMakeLists.txt

@@ -4,7 +4,9 @@ project(TestBasicPerl CXX)
 
 include(CTest)
 
-set(language "perl")
+if(NOT DEFINED language)
+  set(language "perl")
+endif()
 
 include (../BasicConfiguration.cmake)
 

+ 30 - 0
Tests/UseSWIG/CMakeLists.txt

@@ -20,6 +20,16 @@ add_test(NAME UseSWIG.LegacyPerl COMMAND
   --build-options ${build_options}
   --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
   )
+add_test(NAME UseSWIG.LegacyPerl5 COMMAND
+  ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+  --build-and-test
+  "${CMake_SOURCE_DIR}/Tests/UseSWIG/LegacyPerl"
+  "${CMake_BINARY_DIR}/Tests/UseSWIG/LegacyPerl5"
+  ${build_generator_args}
+  --build-project TestLegacyPerl
+  --build-options ${build_options} -Dlanguage=perl5
+  --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+  )
 
 include(CheckLanguage)
 check_language(CSharp)
@@ -66,6 +76,16 @@ add_test(NAME UseSWIG.BasicPerl COMMAND
   --build-options ${build_options}
   --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
   )
+add_test(NAME UseSWIG.BasicPerl5 COMMAND
+  ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+  --build-and-test
+  "${CMake_SOURCE_DIR}/Tests/UseSWIG/BasicPerl"
+  "${CMake_BINARY_DIR}/Tests/UseSWIG/BasicPerl5"
+  ${build_generator_args}
+  --build-project TestBasicPerl
+  --build-options ${build_options} -Dlanguage=perl5
+  --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+  )
 if(SWIG_FOUND AND NOT SWIG_VERSION VERSION_LESS "4.0.2"
     AND CMAKE_GENERATOR MATCHES "Make|Ninja|Xcode|Visual Studio (1[1-9]|[2-9][0-9])")
   add_test(NAME UseSWIG.Depfile.BasicPython COMMAND
@@ -89,6 +109,16 @@ if(SWIG_FOUND AND NOT SWIG_VERSION VERSION_LESS "4.0.2"
     --build-options ${build_options} -DSWIG_USE_SWIG_DEPENDENCIES=ON
     --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
     )
+  add_test(NAME UseSWIG.Depfile.BasicPerl5 COMMAND
+    ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+    --build-and-test
+    "${CMake_SOURCE_DIR}/Tests/UseSWIG/BasicPerl"
+    "${CMake_BINARY_DIR}/Tests/UseSWIG/BasicPerl5.Depfile"
+    ${build_generator_args}
+    --build-project TestBasicPerl
+    --build-options ${build_options} -DSWIG_USE_SWIG_DEPENDENCIES=ON -Dlanguage=perl5
+    --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+    )
 endif()
 
 if (CMake_TEST_UseSWIG_Fortran)

+ 3 - 1
Tests/UseSWIG/LegacyPerl/CMakeLists.txt

@@ -4,7 +4,9 @@ project(TestLegacyPerl CXX)
 
 include(CTest)
 
-set(language "perl")
+if(NOT DEFINED language)
+  set(language "perl")
+endif()
 
 include (../LegacyConfiguration.cmake)