From: <kk...@us...> - 2008-10-02 14:05:10
|
Revision: 1063 http://omc.svn.sourceforge.net/omc/?rev=1063&view=rev Author: kkaempf Date: 2008-10-02 14:00:50 +0000 (Thu, 02 Oct 2008) Log Message: ----------- initial add of Perl target (incomplete!) Modified Paths: -------------- cmpi-bindings/trunk/swig/CMakeLists.txt cmpi-bindings/trunk/swig/cmpi.i Added Paths: ----------- cmpi-bindings/trunk/swig/perl/ cmpi-bindings/trunk/swig/perl/CMakeLists.txt Modified: cmpi-bindings/trunk/swig/CMakeLists.txt =================================================================== --- cmpi-bindings/trunk/swig/CMakeLists.txt 2008-10-02 14:00:08 UTC (rev 1062) +++ cmpi-bindings/trunk/swig/CMakeLists.txt 2008-10-02 14:00:50 UTC (rev 1063) @@ -20,3 +20,10 @@ ADD_SUBDIRECTORY(python) ENDIF (PYTHON_LINK_LIBS) ENDIF (PYTHON_LIBRARY) + +FIND_PACKAGE(Perl) +IF (PERL_EXECUTABLE) + MESSAGE(STATUS "Building Perl...") + ADD_SUBDIRECTORY(perl) +ENDIF (PERL_EXECUTABLE) + \ No newline at end of file Modified: cmpi-bindings/trunk/swig/cmpi.i =================================================================== --- cmpi-bindings/trunk/swig/cmpi.i 2008-10-02 14:00:08 UTC (rev 1062) +++ cmpi-bindings/trunk/swig/cmpi.i 2008-10-02 14:00:50 UTC (rev 1063) @@ -72,10 +72,11 @@ #define Target_True (&PL_sv_yes) #define Target_False (&PL_sv_no) #define Target_Null NULL +#define Target_Void NULL #define Target_Type SV * #define Target_Bool(x) (x) -#define Target_Int(x) 0 /* should be Target_From_long(x), but Swig declares it too late. FIXME */ -#define Target_String(x) "" /* Target_FromCharPtr(x), also */ +#define Target_Int(x) NULL /* should be Target_From_long(x), but Swig declares it too late. FIXME */ +#define Target_String(x) NULL /* Target_FromCharPtr(x), also */ #define Target_Array(x) NULL #define Target_Append(x,y) av_create_and_push(&x, y) #define TARGET_THREAD_BEGIN_BLOCK Added: cmpi-bindings/trunk/swig/perl/CMakeLists.txt =================================================================== --- cmpi-bindings/trunk/swig/perl/CMakeLists.txt (rev 0) +++ cmpi-bindings/trunk/swig/perl/CMakeLists.txt 2008-10-02 14:00:50 UTC (rev 1063) @@ -0,0 +1,60 @@ +# +# CMakeLists.txt for cmpi-bindings/swig/perl +# + +EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{ccflags}" OUTPUT_VARIABLE PERL_CCFLAGS) +EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{archlib}.\"/CORE\"" OUTPUT_VARIABLE PERL_CORE_DIR) +EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{installvendorarch}" OUTPUT_VARIABLE PERL_VENDOR_ARCH) +EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{installvendorlib}" OUTPUT_VARIABLE PERL_VENDOR_LIB) +EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{ccdlflags}" OUTPUT_VARIABLE PERL_LINK_FLAGS) + +MESSAGE(STATUS "Perl executable: ${PERL_EXECUTABLE}") +MESSAGE(STATUS "Perl core dir: ${PERL_CORE_DIR}") +MESSAGE(STATUS "Perl vendor arch dir: ${PERL_VENDOR_ARCH}") +MESSAGE(STATUS "Perl vendor lib dir: ${PERL_VENDOR_LIB}") + +SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/cmpi_wrap.c" ) +SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/../cmpi.i" ) + +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +endif(COMMAND cmake_policy) + +ADD_CUSTOM_COMMAND ( + OUTPUT ${SWIG_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Perl ..." + COMMAND ${SWIG_EXECUTABLE} -perl -shadow -features autodoc -o ${SWIG_OUTPUT} -I${CMPI_INCLUDE_DIR} ${SWIG_INPUT} + COMMAND ${CMAKE_COMMAND} -E echo "Done." + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i +) + +SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) + +INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/.. ) +INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/include/cmpi ) +INCLUDE_DIRECTORIES( ${CMPI_INCLUDE_DIR} ) +INCLUDE_DIRECTORIES( ${PERL_CORE_DIR} ) + +ADD_DEFINITIONS(-DCMPI_PLATFORM_LINUX_GENERIC_GNU -DCMPI_VERSION=200) +ADD_DEFINITIONS(-DTARGET_PERL) + +ADD_DEFINITIONS( ${PERL_CCFLAGS} -Wno-unused -Wno-error ) +LINK_DIRECTORIES( ${PERL_CORE_DIR} ) + +# +# cmpi_instance: provider .so +# + +SET( NAME plCmpiProvider ) +ADD_LIBRARY( ${NAME} SHARED ${SWIG_OUTPUT}) +TARGET_LINK_LIBRARIES( ${NAME} ${PERL_LIBRARY} ) + +INSTALL(TARGETS ${NAME} LIBRARY DESTINATION ${CMPI_LIBRARY_DIR}) + +# +# cmpi_rbwbem_bindings: provider implementation +# +INSTALL(FILES cmpi_plwbem_bindings.pl DESTINATION ${PERL_VENDOR_LIB}) + +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmpi.pm DESTINATION ${PERL_VENDOR_LIB} ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |