diff options
Diffstat (limited to 'bindings/swig/perl/CMakeLists.txt')
-rw-r--r-- | bindings/swig/perl/CMakeLists.txt | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/bindings/swig/perl/CMakeLists.txt b/bindings/swig/perl/CMakeLists.txt new file mode 100644 index 0000000..3e2e2e9 --- /dev/null +++ b/bindings/swig/perl/CMakeLists.txt @@ -0,0 +1,68 @@ +# This method works but there is no good way to install the results of it +#FIND_PACKAGE(PerlLibs REQUIRED) +#INCLUDE_DIRECTORIES(${PERL_INCLUDE_PATH}) +# +#SET_SOURCE_FILES_PROPERTIES(../sword.i PROPERTIES CPLUSPLUS ON) +#SET_SOURCE_FILES_PROPERTIES(../sword.i PROPERTIES SWIG_FLAGS "") +# +#SWIG_ADD_MODULE(Sword perl +# "../sword.i" +#) +# +#SWIG_LINK_LIBRARIES(Sword ${PERL_LIBRARY} ${SWORD_LINK_NAME}) + +FIND_PACKAGE(Perl REQUIRED) + +SET(PERL_MAKEFILE "#!${PERL_EXECUTABLE} + +use ExtUtils::MakeMaker; + +# See lib/ExtUtils/MakeMaker.pm for details of how to influence +# the contents of the Makefile that is written +WriteMakefile( + 'NAME' => 'Sword', + 'VERSION' => '${SWORD_VERSION}', + 'INC' => '-I${CMAKE_SOURCE_DIR}/include -I${CMAKE_CURRENT_SOURCE_DIR}/..', + 'DEFINE' => '-DSWIG', + 'LIBS' => '-L${CMAKE_BINARY_DIR} -lsword -lz', + 'FIRST_MAKEFILE' => 'Makefile.perlswig', + 'PREREQ_PM' => {}, + ($] >= 5.005 ? ## Add these new keywords supported since 5.005 + (ABSTRACT => 'Sword Project perl bindings', # retrieve abstract from module + AUTHOR => 'Sword Project <sword-devel@crosswire.org>') : ()), +); + +rename 'Makefile.perlswig', 'Makefile.perlswig.old' or die \"Can't rename Makefile\"; +open(INPUT, '<Makefile.perlswig.old') or die \"Can't open input Makefile.old\"; +open(OUTPUT,'>Makefile.perlswig') or die \"Can't open output Makefile\"; +while (<INPUT>) { + s/\\-lsword/\\-lsword \\-lstdc\\+\\+/; + print OUTPUT \"$_\"; +} + +close INPUT; +close OUTPUT;") +FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/Makefile.PL "${PERL_MAKEFILE}") + +SET(SKIP_MAKEFILE "\\.old +~$ +\\.bak +^CVS +Makefile$") +FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/Makefile.SKIP "${SKIP_MAKEFILE}") + +SWORD_SWIG_GENERATE(perl) + +ADD_CUSTOM_COMMAND(OUTPUT MANIFEST Makefile.perlswig + COMMAND ${PERL_EXECUTABLE} Makefile.PL && make -f Makefile.perlswig clean + COMMAND ${PERL_EXECUTABLE} Makefile.PL && make -f Makefile.perlswig manifest + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + +ADD_CUSTOM_TARGET(perlswig ALL + COMMAND make -f Makefile.perlswig + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Sword.cxx ${CMAKE_CURRENT_BINARY_DIR}/Makefile.perlswig ${SWORD_LINK_NAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + +INSTALL(SCRIPT install.cmake) + +MESSAGE(STATUS "Perl: yes") |