8c2bff5
diff -bru a/bindings/swig/perl/CMakeLists.txt b/bindings/swig/perl/CMakeLists.txt
8c2bff5
--- a/bindings/swig/perl/CMakeLists.txt	2020-07-29 18:59:48.000000000 +0200
8c2bff5
+++ b/bindings/swig/perl/CMakeLists.txt	2020-11-01 19:56:20.825016280 +0100
8c2bff5
@@ -1,68 +1,35 @@
8c2bff5
-# This method works but there is no good way to install the results of it
8c2bff5
-#FIND_PACKAGE(PerlLibs REQUIRED)
8c2bff5
-#INCLUDE_DIRECTORIES(${PERL_INCLUDE_PATH})
8c2bff5
-#
8c2bff5
-#SET_SOURCE_FILES_PROPERTIES(../sword.i PROPERTIES CPLUSPLUS ON)
8c2bff5
-#SET_SOURCE_FILES_PROPERTIES(../sword.i PROPERTIES SWIG_FLAGS "")
8c2bff5
-#
8c2bff5
-#SWIG_ADD_MODULE(Sword perl
8c2bff5
-#	"../sword.i"
8c2bff5
-#)
8c2bff5
-#
8c2bff5
-#SWIG_LINK_LIBRARIES(Sword ${PERL_LIBRARY} ${SWORD_LINK_NAME})
8c2bff5
-
8c2bff5
-FIND_PACKAGE(Perl REQUIRED)
8c2bff5
-
8c2bff5
-SET(PERL_MAKEFILE "#!${PERL_EXECUTABLE}
8c2bff5
-
8c2bff5
-use ExtUtils::MakeMaker;
8c2bff5
-
8c2bff5
-# See lib/ExtUtils/MakeMaker.pm for details of how to influence
8c2bff5
-# the contents of the Makefile that is written
8c2bff5
-WriteMakefile(
8c2bff5
-	'NAME'		=> 'Sword',
8c2bff5
-	'VERSION'	=> '${SWORD_VERSION}',
8c2bff5
-	'INC'		=> '-I\"${CMAKE_SOURCE_DIR}/include\" -I\"${CMAKE_CURRENT_SOURCE_DIR}/..\"',
8c2bff5
-	'DEFINE'	=> '-DSWIG',
8c2bff5
-	'LIBS'		=> '-L\"${CMAKE_BINARY_DIR}\" -lsword -lz',
8c2bff5
-	'FIRST_MAKEFILE' => 'Makefile.perlswig',
8c2bff5
-	'PREREQ_PM'	=> {},
8c2bff5
-		($] >= 5.005 ? ## Add these new keywords supported since 5.005
8c2bff5
-		(ABSTRACT => 'Sword Project perl bindings', # retrieve abstract from module
8c2bff5
-		AUTHOR => 'Sword Project <sword-devel@crosswire.org>') : ()),
8c2bff5
-);
8c2bff5
-
8c2bff5
-rename 'Makefile.perlswig', 'Makefile.perlswig.old' or die \"Can't rename Makefile\";
8c2bff5
-open(INPUT, '
8c2bff5
-open(OUTPUT,'>Makefile.perlswig') or die \"Can't open output Makefile\";
8c2bff5
-while (<INPUT>) {
8c2bff5
-  s/\\-lsword/\\-lsword \\-lstdc\\+\\+/;
8c2bff5
-  print OUTPUT \"$_\";
8c2bff5
-}
8c2bff5
-
8c2bff5
-close INPUT;
8c2bff5
-close OUTPUT;")
8c2bff5
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/Makefile.PL "${PERL_MAKEFILE}")
8c2bff5
-
8c2bff5
-SET(SKIP_MAKEFILE "\\.old
8c2bff5
-~$
8c2bff5
-\\.bak
8c2bff5
-^CVS
8c2bff5
-Makefile$")
8c2bff5
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/Makefile.SKIP "${SKIP_MAKEFILE}")
8c2bff5
-
8c2bff5
-SWORD_SWIG_GENERATE(perl)
8c2bff5
-
8c2bff5
-ADD_CUSTOM_COMMAND(OUTPUT MANIFEST Makefile.perlswig
8c2bff5
-	COMMAND ${PERL_EXECUTABLE} Makefile.PL && make -f Makefile.perlswig clean
8c2bff5
-	COMMAND ${PERL_EXECUTABLE} Makefile.PL && make -f Makefile.perlswig manifest
8c2bff5
-	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
8c2bff5
-
8c2bff5
-ADD_CUSTOM_TARGET(perlswig ALL
8c2bff5
-	COMMAND make -f Makefile.perlswig
8c2bff5
-	DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Sword.cxx ${CMAKE_CURRENT_BINARY_DIR}/Makefile.perlswig ${SWORD_LINK_NAME}
8c2bff5
-	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
8c2bff5
+# Perl Swig bindings
8c2bff5
 
8c2bff5
-INSTALL(SCRIPT install.cmake)
8c2bff5
+cmake_minimum_required(VERSION 3.14.7)
8c2bff5
+cmake_policy(SET CMP0078 NEW)
8c2bff5
+cmake_policy(SET CMP0086 NEW)
8c2bff5
+set(UseSWIG_MODULE_VERSION 2)
8c2bff5
 
8c2bff5
-MESSAGE(STATUS "Perl: yes")
8c2bff5
+find_package(SWIG REQUIRED)
8c2bff5
+include(${SWIG_USE_FILE})
8c2bff5
+
8c2bff5
+find_package(PerlLibs REQUIRED)
8c2bff5
+include_directories(${PERL_INCLUDE_PATH})
8c2bff5
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
8c2bff5
+
8c2bff5
+
8c2bff5
+set_source_files_properties(../sword.i PROPERTIES CPLUSPLUS ON)
8c2bff5
+
8c2bff5
+SWIG_ADD_LIBRARY(Sword
8c2bff5
+  TYPE SHARED
8c2bff5
+  LANGUAGE perl SOURCES ../sword.i
8c2bff5
+  )
8c2bff5
+TARGET_LINK_LIBRARIES(Sword ${PERL_LIBRARIES} ${SWORD_LINK_NAME})
8c2bff5
+
8c2bff5
+
8c2bff5
+install(
8c2bff5
+  TARGETS Sword
8c2bff5
+  LIBRARY DESTINATION "${LIB_INSTALL_DIR}/perl5/vendor_perl/auto/Sword"
8c2bff5
+)
8c2bff5
+get_target_property(SWIG_BUILDIR Sword SWIG_SUPPORT_FILES_DIRECTORY)
8c2bff5
+
8c2bff5
+message(STATUS "SWIG_BUILDIR=${SWIG_BUILDIR}")
8c2bff5
+install(
8c2bff5
+  FILES ${SWIG_BUILDIR}/Sword.pm
8c2bff5
+  DESTINATION "${LIB_INSTALL_DIR}/perl5/vendor_perl"
8c2bff5
+)