]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Make archive_windows.c internal static library.
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Tue, 24 Mar 2009 13:49:10 +0000 (09:49 -0400)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Tue, 24 Mar 2009 13:49:10 +0000 (09:49 -0400)
Now bsdtar and bsdcpio on Windows can be made by
both static build and dynamic build.

SVN-Revision: 840

CMakeLists.txt
cpio/CMakeLists.txt
cpio/test/CMakeLists.txt
libarchive/CMakeLists.txt
libarchive/test/CMakeLists.txt
tar/CMakeLists.txt
tar/test/CMakeLists.txt

index 646f4f44c5ff9cf4dd9e907feeb2a894d785309d..8b6ffa86eedc80cfc084ac5fc5bbf1013c4254ea 100644 (file)
@@ -39,11 +39,6 @@ OPTION(ENABLE_TEST "Enable unit and regression tests" ON)
 IF(ENABLE_TEST)
        ENABLE_TESTING()
 ENDIF(ENABLE_TEST)
-IF(WIN32 AND NOT CYGWIN)
-  # Currently, dynamic build only.
-  SET(ENABLE_TAR_SHARED ON)
-  SET(ENABLE_CPIO_SHARED ON)
-ENDIF(WIN32 AND NOT CYGWIN)
 
 #
 INCLUDE(CheckFileOffsetBits)
index f8d39a078f6073b12b05efc7aa9f94b797e4b0c5..fe5b13f2ef350e33c1de5750c5d667a5d8af5b7b 100644 (file)
@@ -18,7 +18,6 @@ IF(ENABLE_CPIO)
   IF(WIN32 AND NOT CYGWIN)
     LIST(APPEND bsdcpio_SOURCES cpio_windows.c)
     LIST(APPEND bsdcpio_SOURCES cpio_windows.h)
-    LIST(APPEND bsdcpio_SOURCES ../libarchive/archive_windows.c)
   ENDIF(WIN32 AND NOT CYGWIN)
 
   SET(bsdcpio_MANS bsdcpio.1)
@@ -27,10 +26,15 @@ IF(ENABLE_CPIO)
   # Register target
   #
   ADD_EXECUTABLE(bsdcpio ${bsdcpio_SOURCES})
+  IF(WIN32 AND NOT CYGWIN)
+    ADD_DEPENDENCIES(bsdcpio archive_windows_static)
+  ENDIF(WIN32 AND NOT CYGWIN)
   IF(ENABLE_CPIO_SHARED)
     TARGET_LINK_LIBRARIES(bsdcpio archive ${ADDITIONAL_LIBS})
   ELSE(ENABLE_CPIO_SHARED)
     TARGET_LINK_LIBRARIES(bsdcpio archive_static ${ADDITIONAL_LIBS})
+    SET_TARGET_PROPERTIES(bsdcpio PROPERTIES COMPILE_DEFINITIONS
+      LIBARCHIVE_STATIC)
   ENDIF(ENABLE_CPIO_SHARED)
   IF(WIN32 AND NOT CYGWIN)
     SET_TARGET_PROPERTIES(bsdcpio PROPERTIES
index ef7ccad6876ddef80377b461daeb108dabd076f1..59a89d59f37e67ec274e2b0217af8049deecdbae 100644 (file)
@@ -33,9 +33,6 @@ IF(ENABLE_CPIO AND ENABLE_TEST)
     test_passthrough_reverse.c
     test_pathmatch.c
   )
-  IF(WIN32 AND NOT CYGWIN)
-    LIST(APPEND bsdcpio_test_SOURCES ../../libarchive/archive_windows.c)
-  ENDIF(WIN32 AND NOT CYGWIN)
 
   #
   # Generate the list.h
@@ -48,6 +45,9 @@ IF(ENABLE_CPIO AND ENABLE_TEST)
   # Register target
   #
   ADD_EXECUTABLE(bsdcpio_test ${bsdcpio_test_SOURCES})
+  IF(WIN32 AND NOT CYGWIN)
+    ADD_DEPENDENCIES(bsdcpio_test archive_windows_static)
+  ENDIF(WIN32 AND NOT CYGWIN)
   SET(num 0)
   FOREACH(test ${bsdcpio_test_SOURCES})
     IF(test MATCHES "^test_[^/]+[.]c$")
index 0c2eee18f44632d75ef27dd7f3bfe5f365474ce3..36b52ab09015fa8fa0938735ed6c70ccfdf55fb2 100644 (file)
@@ -1,3 +1,22 @@
+############################################
+#
+# How to build libarchive_windows_static
+#
+# This library is internal library and is used for libarchive programs
+# on Windows platform only.
+# We don't install this one anywhere.
+#
+############################################
+IF(WIN32 AND NOT CYGWIN)
+  SET(libarchive_windows_SOURCES
+    archive_windows.c
+    archive_windows.h
+  )
+  #
+  # Register target
+  #
+  ADD_LIBRARY(archive_windows_static STATIC ${libarchive_windows_SOURCES})
+ENDIF(WIN32 AND NOT CYGWIN)
 
 ############################################
 #
@@ -97,8 +116,6 @@ SET(libarchive_MANS
 )
 
 IF(WIN32 AND NOT CYGWIN)
-  LIST(APPEND libarchive_SOURCES archive_windows.c)
-  LIST(APPEND libarchive_SOURCES archive_windows.h)
   LIST(APPEND libarchive_SOURCES filter_fork_windows.c)
 ENDIF(WIN32 AND NOT CYGWIN)
 
@@ -109,10 +126,17 @@ ENDIF(WIN32 AND NOT CYGWIN)
 # Libarchive is a library
 ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS})
 TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS})
+IF(WIN32 AND NOT CYGWIN)
+  ADD_DEPENDENCIES(archive archive_windows_static)
+ENDIF(WIN32 AND NOT CYGWIN)
 SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION})
 SET_TARGET_PROPERTIES(archive PROPERTIES
   RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
 ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS})
+TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS})
+IF(WIN32 AND NOT CYGWIN)
+  ADD_DEPENDENCIES(archive_static archive_windows_static)
+ENDIF(WIN32 AND NOT CYGWIN)
 SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS
   LIBARCHIVE_STATIC)
 SET_TARGET_PROPERTIES(archive_static PROPERTIES
index b87dabce997f6c32ffcc7502abbb6c13333a6d37..2cb50d2c46882aa387e6a529cdbcf2de706c546b 100644 (file)
@@ -103,6 +103,9 @@ IF(ENABLE_TEST)
   #
   ADD_EXECUTABLE(libarchive_test ${libarchive_test_SOURCES})
   TARGET_LINK_LIBRARIES(libarchive_test ${ADDITIONAL_LIBS})
+  IF(WIN32 AND NOT CYGWIN)
+    ADD_DEPENDENCIES(libarchive_test archive_windows_static)
+  ENDIF(WIN32 AND NOT CYGWIN)
   SET_PROPERTY(TARGET libarchive_test PROPERTY COMPILE_DEFINITIONS
     LIBARCHIVE_STATIC)
   SET(num 0)
index 5aee91872057f75810e345681264b84c1b9ac5b6..25b18aa2463be6100cf2d60eefaee2c063f93b5f 100644 (file)
@@ -22,7 +22,6 @@ IF (ENABLE_TAR)
   IF(WIN32 AND NOT CYGWIN)
     LIST(APPEND bsdtar_SOURCES bsdtar_windows.c)
     LIST(APPEND bsdtar_SOURCES bsdtar_windows.h)
-    LIST(APPEND bsdtar_SOURCES ../libarchive/archive_windows.c)
   ENDIF(WIN32 AND NOT CYGWIN)
 
   SET(bsdtar_MANS bsdtar.1)
@@ -31,10 +30,15 @@ IF (ENABLE_TAR)
   # Register target
   #
   ADD_EXECUTABLE(bsdtar ${bsdtar_SOURCES})
+  IF(WIN32 AND NOT CYGWIN)
+    ADD_DEPENDENCIES(bsdtar archive_windows_static)
+  ENDIF(WIN32 AND NOT CYGWIN)
   IF(ENABLE_TAR_SHARED)
     TARGET_LINK_LIBRARIES(bsdtar archive ${ADDITIONAL_LIBS})
   ELSE(ENABLE_TAR_SHARED)
     TARGET_LINK_LIBRARIES(bsdtar archive_static ${ADDITIONAL_LIBS})
+    SET_TARGET_PROPERTIES(bsdtar PROPERTIES COMPILE_DEFINITIONS
+      LIBARCHIVE_STATIC)
   ENDIF(ENABLE_TAR_SHARED)
   IF(WIN32 AND NOT CYGWIN)
     SET_TARGET_PROPERTIES(bsdtar PROPERTIES
index 30f5713a9f1b6a2dc11da3580658a3095e13f65f..8e6386a5a439e2864038b7c19bbe4130473b4251 100644 (file)
@@ -23,7 +23,6 @@ IF(ENABLE_TAR AND ENABLE_TEST)
     test_version.c
   )
   IF(WIN32 AND NOT CYGWIN)
-    LIST(APPEND bsdtar_test_SOURCES ../../libarchive/archive_windows.c)
     LIST(APPEND bsdtar_test_SOURCES test_windows.c)
   ENDIF(WIN32 AND NOT CYGWIN)
 
@@ -38,6 +37,9 @@ IF(ENABLE_TAR AND ENABLE_TEST)
   # Register target
   #
   ADD_EXECUTABLE(bsdtar_test ${bsdtar_test_SOURCES})
+  IF(WIN32 AND NOT CYGWIN)
+    ADD_DEPENDENCIES(bsdtar_test archive_windows_static)
+  ENDIF(WIN32 AND NOT CYGWIN)
   SET(num 0)
   FOREACH(test ${bsdtar_test_SOURCES})
     IF(test MATCHES "^test_[^/]+[.]c$")