|
|
@@ -378,11 +378,40 @@ ELSE(NOT SWIG)
|
|
|
ENDIF(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
|
|
|
ENDIF((NOT CMAKE_BUILD_TYPE STREQUAL "") AND (NOT CMAKE_BUILD_TYPE STREQUAL "Debug"))
|
|
|
ENDIF(DEFINED CMAKE_BUILD_TYPE)
|
|
|
+
|
|
|
+ MACRO(CONFIGURE_SWIG_BINDING _LANG _INSTALLPATH _EXTRAOUTPUTS _EXTRACFLAGS)
|
|
|
+ STRING(TOUPPER "${_LANG}" _UPPERLANG)
|
|
|
+ STRING(TOLOWER "${_LANG}" _LOWERLANG)
|
|
|
+ SET(_TARGET "physfs-${_LOWERLANG}")
|
|
|
+ IF(PHYSFS_BUILD_${_UPPERLANG})
|
|
|
+ ADD_CUSTOM_COMMAND(
|
|
|
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/physfs-${_LOWERLANG}.c" ${_EXTRAOUTPUTS}
|
|
|
+ MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/extras/physfs-swig.i"
|
|
|
+ COMMAND "${SWIG}"
|
|
|
+ ARGS ${SWIG_OPT_CFLAGS} -${_LOWERLANG} -outdir "${CMAKE_CURRENT_BINARY_DIR}" -o "${CMAKE_CURRENT_BINARY_DIR}/physfs-${_LOWERLANG}.c" "${CMAKE_CURRENT_SOURCE_DIR}/extras/physfs-swig.i"
|
|
|
+ COMMENT "Generating ${_LANG} bindings..."
|
|
|
+ )
|
|
|
+
|
|
|
+ ADD_LIBRARY(${_TARGET} SHARED "${CMAKE_CURRENT_BINARY_DIR}/physfs-${_LOWERLANG}.c")
|
|
|
+ TARGET_LINK_LIBRARIES(${_TARGET} ${PHYSFS_LIB_TARGET})
|
|
|
+ SET_TARGET_PROPERTIES(${_TARGET} PROPERTIES
|
|
|
+ COMPILE_FLAGS "${_EXTRACFLAGS}"
|
|
|
+ OUTPUT_NAME "physfs"
|
|
|
+ )
|
|
|
+ INSTALL(TARGETS ${_TARGET} LIBRARY DESTINATION "${_INSTALLPATH}")
|
|
|
+ MESSAGE(STATUS "${_LANG} bindings configured!")
|
|
|
+ ELSE(PHYSFS_BUILD_${_UPPERLANG})
|
|
|
+ MESSAGE(STATUS "Couldn't figure out ${_LANG} configuration. Skipping ${_LANG} bindings.")
|
|
|
+ ENDIF(PHYSFS_BUILD_${_UPPERLANG})
|
|
|
+ ENDMACRO(CONFIGURE_SWIG_BINDING)
|
|
|
+
|
|
|
MACRO(ADD_SCRIPT_BINDING_OPTION _VAR _LANG _DEFVAL)
|
|
|
OPTION(${_VAR} "Build ${_LANG} bindings." ${_DEFVAL})
|
|
|
MARK_AS_ADVANCED(${_VAR})
|
|
|
ENDMACRO(ADD_SCRIPT_BINDING_OPTION)
|
|
|
+
|
|
|
ADD_SCRIPT_BINDING_OPTION(PHYSFS_BUILD_PERL "Perl" TRUE)
|
|
|
+ ADD_SCRIPT_BINDING_OPTION(PHYSFS_BUILD_RUBY "Ruby" TRUE)
|
|
|
ENDIF(NOT SWIG)
|
|
|
|
|
|
IF(PHYSFS_BUILD_PERL)
|
|
|
@@ -421,31 +450,31 @@ IF(PHYSFS_BUILD_PERL)
|
|
|
GET_PERL_CONFIG("ccflags" PERL_CCFLAGS)
|
|
|
GET_PERL_CONFIG("installsitearch" PERL_INSTALL_PATH)
|
|
|
|
|
|
- IF(PHYSFS_BUILD_PERL)
|
|
|
- ADD_CUSTOM_COMMAND(
|
|
|
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/physfs-perl.c" "${CMAKE_CURRENT_BINARY_DIR}/physfs.pm"
|
|
|
- MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/extras/physfs-swig.i"
|
|
|
- COMMAND "${SWIG}"
|
|
|
- ARGS ${SWIG_OPT_CFLAGS} -perl -outdir "${CMAKE_CURRENT_BINARY_DIR}" -o "${CMAKE_CURRENT_BINARY_DIR}/physfs-perl.c" "${CMAKE_CURRENT_SOURCE_DIR}/extras/physfs-swig.i"
|
|
|
- COMMENT "Generating Perl bindings..."
|
|
|
- )
|
|
|
-
|
|
|
- ADD_LIBRARY(physfs-perl SHARED "${CMAKE_CURRENT_BINARY_DIR}/physfs-perl.c")
|
|
|
- SET_TARGET_PROPERTIES(physfs PROPERTIES VERSION ${PHYSFS_VERSION})
|
|
|
- SET_TARGET_PROPERTIES(physfs PROPERTIES SOVERSION ${PHYSFS_SOVERSION})
|
|
|
- TARGET_LINK_LIBRARIES(physfs-perl ${PHYSFS_LIB_TARGET})
|
|
|
- SET_TARGET_PROPERTIES(physfs-perl PROPERTIES
|
|
|
- COMPILE_FLAGS "\"-I${PERL_INCLUDE_PATH}/CORE\" ${PERL_CCFLAGS} -w"
|
|
|
- OUTPUT_NAME "physfs"
|
|
|
- )
|
|
|
- INSTALL(TARGETS physfs-perl LIBRARY DESTINATION "${PERL_INSTALL_PATH}")
|
|
|
- INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/physfs.pm" DESTINATION "${PERL_INSTALL_PATH}")
|
|
|
- MESSAGE(STATUS "Perl bindings configured!")
|
|
|
- ELSE(PHYSFS_BUILD_PERL)
|
|
|
- MESSAGE(STATUS "Couldn't figure out perl configuration. Skipping perl bindings.")
|
|
|
- ENDIF(PHYSFS_BUILD_PERL)
|
|
|
+ CONFIGURE_SWIG_BINDING(Perl "${PERL_INSTALL_PATH}" "${CMAKE_CURRENT_BINARY_DIR}/physfs.pm" "\"-I${PERL_INCLUDE_PATH}/CORE\" ${PERL_CCFLAGS} -w")
|
|
|
+ INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/physfs.pm" DESTINATION "${PERL_INSTALL_PATH}")
|
|
|
ENDIF(PHYSFS_BUILD_PERL)
|
|
|
|
|
|
+IF(PHYSFS_BUILD_RUBY)
|
|
|
+ MESSAGE(STATUS "Ruby bindings aren't ready yet. Disabling.")
|
|
|
+ SET(PHYSFS_BUILD_RUBY FALSE) # !!! FIXME: write me.
|
|
|
+ENDIF(PHYSFS_BUILD_RUBY)
|
|
|
+
|
|
|
+IF(PHYSFS_BUILD_RUBY)
|
|
|
+ MESSAGE(STATUS "Configuring Ruby bindings...")
|
|
|
+ FIND_PACKAGE(Ruby)
|
|
|
+ IF(NOT RUBY_FOUND)
|
|
|
+ MESSAGE(STATUS "Ruby not found. You won't be able to build ruby bindings.")
|
|
|
+ SET(PHYSFS_BUILD_RUBY FALSE)
|
|
|
+ ENDIF(NOT RUBY_FOUND)
|
|
|
+
|
|
|
+ #MESSAGE(STATUS "RUBY_EXECUTABLE '${RUBY_EXECUTABLE}'")
|
|
|
+ #MESSAGE(STATUS "RUBY_INCLUDE_DIRS '${RUBY_INCLUDE_DIRS}'")
|
|
|
+ #MESSAGE(STATUS "RUBY_LIBRARY '${RUBY_LIBRARY}'")
|
|
|
+ #MESSAGE(STATUS "RUBY_VERSION '${RUBY_VERSION}'")
|
|
|
+ #CONFIGURE_SWIG_BINDING(Ruby "${PERL_INSTALL_PATH}" "" "")
|
|
|
+ENDIF(PHYSFS_BUILD_RUBY)
|
|
|
+
|
|
|
+
|
|
|
INSTALL(TARGETS ${PHYSFS_INSTALL_TARGETS}
|
|
|
RUNTIME DESTINATION bin
|
|
|
LIBRARY DESTINATION lib
|
|
|
@@ -485,6 +514,7 @@ MESSAGE_BOOL_OPTION("Build own zlib" PHYSFS_INTERNAL_ZLIB)
|
|
|
MESSAGE_BOOL_OPTION("Build static library" PHYSFS_BUILD_STATIC)
|
|
|
MESSAGE_BOOL_OPTION("Build shared library" PHYSFS_BUILD_SHARED)
|
|
|
MESSAGE_BOOL_OPTION("Build Perl bindings" PHYSFS_BUILD_PERL)
|
|
|
+MESSAGE_BOOL_OPTION("Build Ruby bindings" PHYSFS_BUILD_RUBY)
|
|
|
MESSAGE_BOOL_OPTION("Build wxWidgets test program" PHYSFS_BUILD_WX_TEST)
|
|
|
MESSAGE_BOOL_OPTION("Build stdio test program" PHYSFS_BUILD_TEST)
|
|
|
IF(PHYSFS_BUILD_TEST)
|