gentoo-overlay/dev-games/simgear/files/simgear-2.8.0-unbundle-expat.patch

141 lines
4.2 KiB
Diff

diff -ruN simgear-2.8.0/CMakeLists.txt my/CMakeLists.txt
--- simgear-2.8.0/CMakeLists.txt 2012-08-16 16:20:28.000000000 +0200
+++ my/CMakeLists.txt 2012-09-22 00:25:49.814097209 +0200
@@ -66,6 +66,7 @@
option(ENABLE_LIBSVN "Set to ON to build SimGear with libsvnclient support" ON)
option(ENABLE_RTI "Set to ON to build SimGear with RTI support" OFF)
option(ENABLE_TESTS "Set to OFF to disable building SimGear's test applications" ON)
+option(SYSTEM_EXPAT "Set to ON to build SimGear using the system libExpat" OFF)
if (MSVC)
GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} PATH)
@@ -148,6 +149,16 @@
find_package(ZLIB REQUIRED)
find_package(Threads REQUIRED)
+if (SYSTEM_EXPAT)
+ message(STATUS "Requested to use system Expat library, forcing SIMGEAR_SHARED to true")
+ set(SIMGEAR_SHARED ON)
+ find_package(EXPAT REQUIRED)
+ include_directories(${EXPAT_INCLUDE_DIRS})
+else()
+ message(STATUS "Using built-in expat code")
+ add_definitions(-DHAVE_EXPAT_CONFIG_H)
+endif(SYSTEM_EXPAT)
+
check_include_file(sys/time.h HAVE_SYS_TIME_H)
check_include_file(sys/timeb.h HAVE_SYS_TIMEB_H)
check_include_file(unistd.h HAVE_UNISTD_H)
@@ -252,7 +263,6 @@
${ALUT_INCLUDE_DIR} ${OPENAL_INCLUDE_DIR} )
add_definitions(-DHAVE_CONFIG_H)
-add_definitions(-DHAVE_EXPAT_CONFIG_H)
# configure a header file to pass some of the CMake settings
# to the source code
diff -ruN simgear-2.8.0/simgear/CMakeLists.txt my/simgear/CMakeLists.txt
--- simgear-2.8.0/simgear/CMakeLists.txt 2012-08-16 16:20:29.000000000 +0200
+++ my/simgear/CMakeLists.txt 2012-09-22 00:29:52.244101431 +0200
@@ -54,7 +54,9 @@
set_property(TARGET SimGearCore PROPERTY VERSION ${SIMGEAR_VERSION})
set_property(TARGET SimGearCore PROPERTY SOVERSION ${SIMGEAR_SOVERSION})
- target_link_libraries(SimGearCore ${ZLIB_LIBRARY} ${RT_LIBRARY})
+ target_link_libraries(SimGearCore ${ZLIB_LIBRARY} ${RT_LIBRARY}
+ ${EXPAT_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT})
install(TARGETS SimGearCore LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
if(LIBSVN_FOUND)
diff -ruN simgear-2.8.0/simgear/simgear_config_cmake.h.in my/simgear/simgear_config_cmake.h.in
--- simgear-2.8.0/simgear/simgear_config_cmake.h.in 2012-08-16 16:20:29.000000000 +0200
+++ my/simgear/simgear_config_cmake.h.in 2012-09-22 00:25:49.822097209 +0200
@@ -17,3 +17,5 @@
#cmakedefine HAVE_LIBSVN_CLIENT_1
#cmakedefine GCC_ATOMIC_BUILTINS_FOUND
+
+#cmakedefine SYSTEM_EXPAT
diff -ruN simgear-2.8.0/simgear/xml/CMakeLists.txt my/simgear/xml/CMakeLists.txt
--- simgear-2.8.0/simgear/xml/CMakeLists.txt 2012-08-16 16:20:29.000000000 +0200
+++ my/simgear/xml/CMakeLists.txt 2012-09-22 00:25:49.872097210 +0200
@@ -7,26 +7,31 @@
)
set(SOURCES
- asciitab.h
- hashtable.h
- iasciitab.h
- latin1tab.h
- nametab.h
- utf8tab.h
- xmldef.h
- xmlparse.h
- xmlrole.h
- xmltok.h
- xmltok_impl.h
- hashtable.c
- xmlparse.c
- xmlrole.c
- xmltok.c
easyxml.cxx
- internal.h
- ascii.h
- expat.h
- expat_external.h
)
+if (NOT SYSTEM_EXPAT)
+ list(APPEND SOURCES
+ asciitab.h
+ hashtable.h
+ iasciitab.h
+ latin1tab.h
+ nametab.h
+ utf8tab.h
+ xmldef.h
+ xmlparse.h
+ xmlrole.h
+ xmltok.h
+ xmltok_impl.h
+ hashtable.c
+ xmlparse.c
+ xmlrole.c
+ xmltok.c
+ internal.h
+ ascii.h
+ expat.h
+ expat_external.h
+ )
+endif()
+
simgear_component(xml xml "${SOURCES}" "${HEADERS}")
diff -ruN simgear-2.8.0/simgear/xml/easyxml.cxx my/simgear/xml/easyxml.cxx
--- simgear-2.8.0/simgear/xml/easyxml.cxx 2012-08-16 16:20:29.000000000 +0200
+++ my/simgear/xml/easyxml.cxx 2012-09-22 00:25:49.889097210 +0200
@@ -4,13 +4,22 @@
* This file is in the Public Domain, and comes with NO WARRANTY of any kind.
*/
+#ifdef HAVE_CONFIG_H
+# include <simgear_config.h>
+#endif
+
#include <simgear/compiler.h>
#include <string.h> // strcmp()
#include "easyxml.hxx"
-#include "xmlparse.h"
-
+
+#ifdef SYSTEM_EXPAT
+# include <expat.h>
+#else
+# include "xmlparse.h"
+#endif
+
#include <fstream>
#include <iostream>