|
|
@@ -231,10 +231,29 @@ IF(PHYSFS_NEED_ZLIB)
|
|
|
ENDIF(PHYSFS_INTERNAL_ZLIB)
|
|
|
ENDIF(PHYSFS_NEED_ZLIB)
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-ADD_LIBRARY(physfs SHARED ${PHYSFS_SRCS})
|
|
|
-TARGET_LINK_LIBRARIES(physfs ${OPTIONAL_LIBRARY_LIBS} ${OTHER_LDFLAGS})
|
|
|
+OPTION(PHYSFS_BUILD_STATIC "Build static library" TRUE)
|
|
|
+IF(PHYSFS_BUILD_STATIC)
|
|
|
+ ADD_LIBRARY(physfs-static STATIC ${PHYSFS_SRCS})
|
|
|
+ SET_TARGET_PROPERTIES(physfs-static PROPERTIES OUTPUT_NAME "physfs")
|
|
|
+ SET(PHYSFS_LIB_TARGET physfs-static)
|
|
|
+ENDIF(PHYSFS_BUILD_STATIC)
|
|
|
+
|
|
|
+OPTION(PHYSFS_BUILD_SHARED "Build shared library" TRUE)
|
|
|
+IF(PHYSFS_BUILD_SHARED)
|
|
|
+ ADD_LIBRARY(physfs SHARED ${PHYSFS_SRCS})
|
|
|
+ TARGET_LINK_LIBRARIES(physfs ${OPTIONAL_LIBRARY_LIBS} ${OTHER_LDFLAGS})
|
|
|
+ SET(PHYSFS_LIB_TARGET physfs)
|
|
|
+ENDIF(PHYSFS_BUILD_SHARED)
|
|
|
+
|
|
|
+IF(NOT PHYSFS_BUILD_SHARED AND NOT PHYSFS_BUILD_STATIC)
|
|
|
+ MESSAGE(FATAL "Both shared and static libraries are disabled!")
|
|
|
+ENDIF(NOT PHYSFS_BUILD_SHARED AND NOT PHYSFS_BUILD_STATIC)
|
|
|
+
|
|
|
+# CMake FAQ says I need this...
|
|
|
+IF(PHYSFS_BUILD_SHARED AND PHYSFS_BUILD_STATIC)
|
|
|
+ SET_TARGET_PROPERTIES(physfs PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
|
|
+ SET_TARGET_PROPERTIES(physfs-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
|
|
+ENDIF(PHYSFS_BUILD_SHARED AND PHYSFS_BUILD_STATIC)
|
|
|
|
|
|
OPTION(PHYSFS_BUILD_TEST "Build test program." TRUE)
|
|
|
MARK_AS_ADVANCED(PHYSFS_BUILD_TEST)
|
|
|
@@ -252,7 +271,7 @@ IF(PHYSFS_BUILD_TEST)
|
|
|
ENDIF(HAVE_LIBREADLINE AND HAVE_LIBHISTORY)
|
|
|
ENDIF(HAVE_READLINE_H AND HAVE_HISTORY_H)
|
|
|
ADD_EXECUTABLE(test_physfs test/test_physfs.c)
|
|
|
- TARGET_LINK_LIBRARIES(test_physfs physfs ${TEST_PHYSFS_LIBS} ${OTHER_LDFLAGS})
|
|
|
+ TARGET_LINK_LIBRARIES(test_physfs ${PHYSFS_LIB_TARGET} ${TEST_PHYSFS_LIBS} ${OTHER_LDFLAGS})
|
|
|
ENDIF(PHYSFS_BUILD_TEST)
|
|
|
|
|
|
FIND_PACKAGE(Doxygen)
|
|
|
@@ -282,6 +301,8 @@ MESSAGE_BOOL_OPTION("QPAK support" PHYSFS_ARCHIVE_QPAK)
|
|
|
MESSAGE_BOOL_OPTION("CD-ROM drive support" PHYSFS_HAVE_CDROM_SUPPORT)
|
|
|
MESSAGE_BOOL_OPTION("Thread safety" PHYSFS_HAVE_THREAD_SUPPORT)
|
|
|
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 test program" PHYSFS_BUILD_TEST)
|
|
|
IF(PHYSFS_BUILD_TEST)
|
|
|
MESSAGE_BOOL_OPTION(" Use readline in test program" HAVE_SYSTEM_READLINE)
|