aboutsummaryrefslogtreecommitdiff
path: root/ports/libarchive/fix-buildsystem.patch
blob: 2568a8c8fef35353021fcceade529a3814d61edc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a376fce..2d035a1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -166,7 +166,7 @@ IF (MSVC)
   #                       result of an assignment.
   SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /we4706")
   # /WX option is the same as gcc's -Werror option.
-  SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /WX")
+  #SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /WX") <- breaks x64-debug
   # /Oi option enables built-in functions.
   SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /Oi")
   #################################################################
@@ -177,6 +177,7 @@ ENDIF (MSVC)
 # Enable CTest/CDash support
 include(CTest)
 
+OPTION(ENABLE_LZO2 "Enable use of LZO2 library" ON)
 OPTION(ENABLE_NETTLE "Enable use of Nettle" ON)
 OPTION(ENABLE_OPENSSL "Enable use of OpenSSL" ON)
 OPTION(ENABLE_LZMA "Enable the use of the system found LZMA library if found" ON)
@@ -357,7 +358,7 @@ IF(DEFINED __GNUWIN32PATH AND EXISTS "${__GNUWIN32PATH}")
   # The zlib and the bzip2 Setup program have installed programs and DLLs into
   # "C:/Program Files/GnuWin32" by default.
   # This is convenience setting for Windows.
-  SET(CMAKE_PREFIX_PATH ${__GNUWIN32PATH} $(CMAKE_PREFIX_PATH))
+  #SET(CMAKE_PREFIX_PATH ${__GNUWIN32PATH} $(CMAKE_PREFIX_PATH))
   #
   # If you didn't use Setup program or installed into nonstandard path,
   # cmake cannot find out your zlib or bzip2 libraries and include files,
@@ -397,11 +398,12 @@ IF(ZLIB_FOUND)
     #
     # Test if ZLIB_WINAPI macro is needed to use.
     #
-    TRY_MACRO_FOR_LIBRARY(
-      "${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}"
-      RUNS
-      "#include <zlib.h>\nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }"
-      ZLIB_WINAPI)
+	SET(ZLIB_WINAPI OFF) # skip following test, it crashes with weird message box
+    #TRY_MACRO_FOR_LIBRARY(
+    #  "${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}"
+    #  RUNS
+    #  "#include <zlib.h>\nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }"
+    #  ZLIB_WINAPI)
     IF(ZLIB_WINAPI)
       ADD_DEFINITIONS(-DZLIB_WINAPI)
     ELSE(ZLIB_WINAPI)
@@ -483,6 +485,7 @@ ENDIF(LZMA_FOUND)
 #
 # Find LZO2
 #
+IF(ENABLE_LZO2)
 IF (LZO2_INCLUDE_DIR)
   # Already in cache, be silent
   SET(LZO2_FIND_QUIETLY TRUE)
@@ -504,6 +507,7 @@ IF(LZO2_FOUND)
 ENDIF(LZO2_FOUND)
 MARK_AS_ADVANCED(CLEAR LZO2_INCLUDE_DIR)
 MARK_AS_ADVANCED(CLEAR LZO2_LIBRARY)
+ENDIF()
 #
 # Find LZ4
 #
@@ -923,7 +927,9 @@ IF(ENABLE_ICONV)
     CHECK_ICONV("libc" "")
 
     # If iconv isn't in libc and we have a libiconv, try that.
-    FIND_LIBRARY(LIBICONV_PATH NAMES iconv libiconv)
+    FIND_LIBRARY(LIBICONV_PATH1 NAMES iconv libiconv)
+    FIND_LIBRARY(LIBCHARSET_PATH NAMES charset libcharset)
+    SET(LIBICONV_PATH ${LIBICONV_PATH1} ${LIBCHARSET_PATH})
     IF(NOT HAVE_ICONV AND LIBICONV_PATH)
       LIST(APPEND CMAKE_REQUIRED_LIBRARIES ${LIBICONV_PATH})
       # Test if a macro is needed for the library.
@@ -1307,9 +1313,13 @@ CHECK_C_SOURCE_COMPILES(
   "#include <sys/sysmacros.h>\nint main() { return major(256); }"
   MAJOR_IN_SYSMACROS)
 
+CMAKE_PUSH_CHECK_STATE()
+set(CMAKE_REQUIRED_INCLUDES ${LZMA_INCLUDE_DIR})
+set(CMAKE_REQUIRED_LIBRARIES ${LZMA_LIBRARIES})
 CHECK_C_SOURCE_COMPILES(
   "#include <lzma.h>\n#if LZMA_VERSION < 50020000\n#error unsupported\n#endif\nint main(void){lzma_stream_encoder_mt(0, 0); return 0;}"
   HAVE_LZMA_STREAM_ENCODER_MT)
+CMAKE_POP_CHECK_STATE()
 
 IF(HAVE_STRERROR_R)
   SET(HAVE_DECL_STRERROR_R 1)
@@ -1655,12 +1665,12 @@ INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
 
 # Handle generation of the libarchive.pc file for pkg-config
-INCLUDE(CreatePkgConfigFile)
+#INCLUDE(CreatePkgConfigFile)
 
 #
 # Register installation of PDF documents.
 #
-IF(WIN32 AND NOT CYGWIN)
+IF(0 AND WIN32 AND NOT CYGWIN)
   #
   # On Windows platform, It's better that we install PDF documents
   # on one's computer.
diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt
index 4cc9a2c..ef304c5 100644
--- a/libarchive/CMakeLists.txt
+++ b/libarchive/CMakeLists.txt
@@ -191,28 +191,24 @@ IF(WIN32 AND NOT CYGWIN)
 ENDIF(WIN32 AND NOT CYGWIN)
 
 # Libarchive is a shared library
-ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS})
+ADD_LIBRARY(archive ${libarchive_SOURCES} ${include_HEADERS})
 TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS})
+IF(BUILD_SHARED_LIBS)
 SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION})
-
-# archive_static is a static library
-ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS})
-TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS})
-SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS
-  LIBARCHIVE_STATIC)
-# On Posix systems, libarchive.so and libarchive.a can co-exist.
-IF(NOT WIN32 OR CYGWIN)
-  SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive)
-ENDIF(NOT WIN32 OR CYGWIN)
+ELSE()
+SET_TARGET_PROPERTIES(archive PROPERTIES COMPILE_DEFINITIONS LIBARCHIVE_STATIC)
+ENDIF()
 
 IF(ENABLE_INSTALL)
   # How to install the libraries
-  INSTALL(TARGETS archive archive_static
+  INSTALL(TARGETS archive
           RUNTIME DESTINATION bin
           LIBRARY DESTINATION lib
           ARCHIVE DESTINATION lib)
-  INSTALL_MAN(${libarchive_MANS})
+  #INSTALL_MAN(${libarchive_MANS})
+  IF(NOT ARCHIVE_SKIP_HEADERS)
   INSTALL(FILES ${include_HEADERS} DESTINATION include)
+  ENDIF()
 ENDIF()
 
 add_subdirectory(test)