diff -up physfs-2.0.2/archivers/lzma.c.system-lzmasdk physfs-2.0.2/archivers/lzma.c
--- physfs-2.0.2/archivers/lzma.c.system-lzmasdk 2011-10-17 15:20:32.452804224 -0400
+++ physfs-2.0.2/archivers/lzma.c 2011-10-17 15:20:43.228664029 -0400
@@ -18,9 +18,9 @@
#define __PHYSICSFS_INTERNAL__
#include "physfs_internal.h"
-#include "lzma/C/7zCrc.h"
-#include "lzma/C/Archive/7z/7zIn.h"
-#include "lzma/C/Archive/7z/7zExtract.h"
+#include "C/7zCrc.h"
+#include "C/Archive/7z/7zIn.h"
+#include "C/Archive/7z/7zExtract.h"
/* 7z internal from 7zIn.c */
diff -up physfs-2.0.2/CMakeLists.txt.system-lzmasdk physfs-2.0.2/CMakeLists.txt
--- physfs-2.0.2/CMakeLists.txt.system-lzmasdk 2011-02-18 16:17:31.000000000 -0500
+++ physfs-2.0.2/CMakeLists.txt 2011-10-17 15:21:33.081016247 -0400
@@ -11,6 +11,8 @@ SET(PHYSFS_VERSION 2.0.2)
# Increment this if/when we break backwards compatibility.
SET(PHYSFS_SOVERSION 1)
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+
# I hate that they define "WIN32" ... we're about to move to Win64...I hope!
IF(WIN32 AND NOT WINDOWS)
SET(WINDOWS TRUE)
@@ -216,7 +218,21 @@ OPTION(PHYSFS_ARCHIVE_7Z "Enable 7zip su
IF(PHYSFS_ARCHIVE_7Z)
ADD_DEFINITIONS(-DPHYSFS_SUPPORTS_7Z=1)
# !!! FIXME: rename to 7z.c?
- SET(PHYSFS_SRCS ${PHYSFS_SRCS} ${LZMA_SRCS})
+ FIND_PACKAGE(LZMASDK)
+
+ IF(LZMASDK_FOUND)
+ OPTION(PHYSFS_INTERNAL_LZMASDK "Link own lzma-sdk instead of system library" FALSE)
+ ELSE(HAVE_SYSTEM_LZMASDK)
+ SET(PHYSFS_INTERNAL_LZMASDK TRUE)
+ ENDIF(LZMASDK_FOUND)
+
+ IF(PHYSFS_INTERNAL_LZMASDK)
+ SET(PHYSFS_SRCS ${PHYSFS_SRCS} ${LZMA_SRCS})
+ INCLUDE_DIRECTORIES(lzma)
+ ELSE(PHYSFS_INTERNAL_LZMASDK)
+ SET(OPTIONAL_LIBRARY_LIBS ${OPTIONAL_LIBRARY_LIBS} ${LZMASDK_LIBRARY})
+ INCLUDE_DIRECTORIES(${LZMASDK_INCLUDE_DIR})
+ ENDIF(PHYSFS_INTERNAL_LZMASDK)
ENDIF(PHYSFS_ARCHIVE_7Z)
OPTION(PHYSFS_ARCHIVE_GRP "Enable Build Engine GRP support" TRUE)
diff -up physfs-2.0.2/cmake/Modules/FindLZMASDK.cmake.system-lzmasdk physfs-2.0.2/cmake/Modules/FindLZMASDK.cmake
--- physfs-2.0.2/cmake/Modules/FindLZMASDK.cmake.system-lzmasdk 2011-10-17 15:19:46.350404763 -0400
+++ physfs-2.0.2/cmake/Modules/FindLZMASDK.cmake 2011-10-17 15:19:46.349404776 -0400
@@ -0,0 +1,22 @@
+# - Find lzma-sdk
+# Find the native LZMASDK includes and library.
+# Once done this will define
+#
+# LZMASDK_INCLUDE_DIRS - where to find C/Archive/7z/7zExtract.h, etc.
+# LZMASDK_LIBRARIES - List of libraries when using lzmasdk.
+# LZMASDK_FOUND - True if lzmasdk found.
+
+find_path(LZMASDK_INCLUDE_DIR NAMES C/Archive/7z/7zExtract.h PATH_SUFFIXES lzma457)
+find_library(LZMASDK_LIBRARY NAMES lzmasdk457)
+
+set(LZMASDK_LIBRARIES ${LZMASDK_LIBRARY} )
+set(LZMASDK_INCLUDE_DIRS ${LZMASDK_INCLUDE_DIR} )
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set LZMASDK_FOUND to TRUE
+# if all listed variables are TRUE
+find_package_handle_standard_args(LZMASDK DEFAULT_MSG
+ LZMASDK_LIBRARY LZMASDK_INCLUDE_DIR)
+
+mark_as_advanced(LZMASDK_INCLUDE_DIR LZMASDK_LIBRARY )
+