forked from hasufell/hasufell-repository
games-strategy/freeorion: initial import
Change-Id: Ic50ae0f57dfadcb306eec0753d47a6e7ced0fe63 Reviewed-on: https://galileo.mailstation.de/gerrit/7065 Reviewed-by: Jenkins <wk@mailstation.de> Reviewed-by: Julian Ospald <hasufell@posteo.de>
This commit is contained in:
parent
4b9e79a99d
commit
3b09863a55
@ -0,0 +1,376 @@
|
|||||||
|
From 2325d4899015776745dff355999c99b384488e13 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Julian Ospald <hasufell@posteo.de>
|
||||||
|
Date: Fri, 9 Sep 2016 14:28:54 +0200
|
||||||
|
Subject: [PATCH] Backport of d87fd278225fb35836471eb0425b6675530d22d9 to 0.4.5
|
||||||
|
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 43 +++++++++++++++++++++++++++----------------
|
||||||
|
GG/CMakeLists.txt | 7 +++----
|
||||||
|
GG/cmake/GiGi.pc.in | 4 ++--
|
||||||
|
GG/cmake/GiGiSDL.pc.in | 4 ++--
|
||||||
|
GG/src/CMakeLists.txt | 9 +++++----
|
||||||
|
GG/src/SDL/CMakeLists.txt | 9 +++++----
|
||||||
|
client/AI/CMakeLists.txt | 2 +-
|
||||||
|
client/human/CMakeLists.txt | 8 +-------
|
||||||
|
parse/CMakeLists.txt | 4 ++--
|
||||||
|
parse/test/CMakeLists.txt | 12 ------------
|
||||||
|
server/CMakeLists.txt | 2 +-
|
||||||
|
11 files changed, 49 insertions(+), 55 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index decefe2..44779f9 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -1,6 +1,8 @@
|
||||||
|
cmake_minimum_required(VERSION 2.6)
|
||||||
|
cmake_policy(VERSION 2.6.4)
|
||||||
|
|
||||||
|
+include(GNUInstallDirs)
|
||||||
|
+
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_HOME_DIRECTORY}/cmake ${CMAKE_HOME_DIRECTORY}/GG/cmake)
|
||||||
|
set(CMAKE_CONFIGURATION_TYPES Debug Release)
|
||||||
|
IF(NOT CMAKE_BUILD_TYPE)
|
||||||
|
@@ -33,9 +35,18 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||||
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||||
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||||
|
|
||||||
|
+if(WIN32)
|
||||||
|
+ set(CMAKE_INSTALL_BINDIR "")
|
||||||
|
+ set(FreeOrion_INSTALL_LIBDIR "")
|
||||||
|
+ set(FreeOrion_INSTALL_FULL_LIBDIR "")
|
||||||
|
+else()
|
||||||
|
+ set(FreeOrion_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/freeorion")
|
||||||
|
+ set(FreeOrion_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}/freeorion")
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||||
|
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
||||||
|
-set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/freeorion")
|
||||||
|
+set(CMAKE_INSTALL_RPATH "${FreeOrion_INSTALL_FULL_LIBDIR}")
|
||||||
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
@@ -104,10 +115,11 @@ endif ()
|
||||||
|
# Build common code library #
|
||||||
|
########################################
|
||||||
|
set(BUILD_DEVEL_PACKAGE OFF CACHE INTERNAL "Disables installation of GiGi development files." FORCE)
|
||||||
|
-set(OLD_LIB_SUFFIX ${LIB_SUFFIX})
|
||||||
|
-set(LIB_SUFFIX "${LIB_SUFFIX}/freeorion")
|
||||||
|
+set(_ORIG_CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
+set(CMAKE_INSTALL_LIBDIR "${FreeOrion_INSTALL_LIBDIR}")
|
||||||
|
add_subdirectory(GG)
|
||||||
|
-set(LIB_SUFFIX ${OLD_LIB_SUFFIX})
|
||||||
|
+set(CMAKE_INSTALL_LIBDIR ${_ORIG_CMAKE_INSTALL_LIBDIR})
|
||||||
|
+unset(_ORIG_CMAKE_INSTALL_LIBDIR)
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Dependencies #
|
||||||
|
@@ -377,31 +389,30 @@ if (BUILD_SDK)
|
||||||
|
else ()
|
||||||
|
install(
|
||||||
|
DIRECTORY default/
|
||||||
|
- DESTINATION share/freeorion/default
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/freeorion/default
|
||||||
|
COMPONENT COMPONENT_FREEORION_DATA
|
||||||
|
- PATTERN ".svn" EXCLUDE
|
||||||
|
PATTERN "*~" EXCLUDE
|
||||||
|
PATTERN "*.pyc" EXCLUDE
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS freeorioncommon
|
||||||
|
- LIBRARY DESTINATION lib${LIB_SUFFIX}/freeorion
|
||||||
|
- RUNTIME DESTINATION .
|
||||||
|
+ LIBRARY DESTINATION ${FreeOrion_INSTALL_LIBDIR}
|
||||||
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_SOURCE_DIR}/freeorion.desktop
|
||||||
|
- DESTINATION share/applications
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_16x16.png
|
||||||
|
- DESTINATION share/icons/hicolor/16x16/apps/
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps/
|
||||||
|
RENAME freeorion.png
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
@@ -409,7 +420,7 @@ else ()
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_24x24.png
|
||||||
|
- DESTINATION share/icons/hicolor/24x24/apps/
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/24x24/apps/
|
||||||
|
RENAME freeorion.png
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
@@ -417,7 +428,7 @@ else ()
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_32x32.png
|
||||||
|
- DESTINATION share/icons/hicolor/32x32/apps/
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps/
|
||||||
|
RENAME freeorion.png
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
@@ -425,7 +436,7 @@ else ()
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_64x64.png
|
||||||
|
- DESTINATION share/icons/hicolor/64x64/apps/
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps/
|
||||||
|
RENAME freeorion.png
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
@@ -433,7 +444,7 @@ else ()
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_128x128.png
|
||||||
|
- DESTINATION share/icons/hicolor/128x128/apps/
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps/
|
||||||
|
RENAME freeorion.png
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
@@ -441,7 +452,7 @@ else ()
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_256x256.png
|
||||||
|
- DESTINATION share/icons/hicolor/256x256/apps/
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps/
|
||||||
|
RENAME freeorion.png
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
@@ -470,7 +481,7 @@ else ()
|
||||||
|
wrap_oal.dll
|
||||||
|
z.dll
|
||||||
|
zlib1.dll
|
||||||
|
- DESTINATION bin
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
COMPONENT COMPONENT_FREEORION_WIN32_RUNTIME_DEPS
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
diff --git a/GG/CMakeLists.txt b/GG/CMakeLists.txt
|
||||||
|
index 1078ec3..882116d 100644
|
||||||
|
--- a/GG/CMakeLists.txt
|
||||||
|
+++ b/GG/CMakeLists.txt
|
||||||
|
@@ -3,6 +3,7 @@ cmake_policy(VERSION 2.6.4)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
include(CMakeDependentOption)
|
||||||
|
+include(GNUInstallDirs)
|
||||||
|
|
||||||
|
project(GiGi)
|
||||||
|
|
||||||
|
@@ -131,10 +132,8 @@ configure_file(
|
||||||
|
if (BUILD_DEVEL_PACKAGE)
|
||||||
|
install(
|
||||||
|
DIRECTORY GG
|
||||||
|
- DESTINATION include
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||||
|
COMPONENT COMPONENT_GIGI_DEVEL
|
||||||
|
- PATTERN ".svn" EXCLUDE
|
||||||
|
- PATTERN "*~" EXCLUDE
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
@@ -172,7 +171,7 @@ if (DOXYGEN_FOUND)
|
||||||
|
if (BUILD_DEVEL_PACKAGE)
|
||||||
|
install(
|
||||||
|
DIRECTORY ${GG_DOC_STAMP_DIR}
|
||||||
|
- DESTINATION doc
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
diff --git a/GG/cmake/GiGi.pc.in b/GG/cmake/GiGi.pc.in
|
||||||
|
index 3c0a874..ba7cbe6 100644
|
||||||
|
--- a/GG/cmake/GiGi.pc.in
|
||||||
|
+++ b/GG/cmake/GiGi.pc.in
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
prefix=@CMAKE_INSTALL_PREFIX@
|
||||||
|
-libdir=${prefix}/lib@LIB_SUFFIX@
|
||||||
|
-includedir=${prefix}/include
|
||||||
|
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
||||||
|
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
||||||
|
version=@GIGI_VERSION@
|
||||||
|
|
||||||
|
Name: GiGi
|
||||||
|
diff --git a/GG/cmake/GiGiSDL.pc.in b/GG/cmake/GiGiSDL.pc.in
|
||||||
|
index 933c5af..ed2c4e1 100644
|
||||||
|
--- a/GG/cmake/GiGiSDL.pc.in
|
||||||
|
+++ b/GG/cmake/GiGiSDL.pc.in
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
prefix=@CMAKE_INSTALL_PREFIX@
|
||||||
|
-libdir=${prefix}/lib@LIB_SUFFIX@
|
||||||
|
-includedir=${prefix}/include
|
||||||
|
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
||||||
|
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
||||||
|
version=@GIGI_VERSION@
|
||||||
|
|
||||||
|
Name: GiGiSDL
|
||||||
|
diff --git a/GG/src/CMakeLists.txt b/GG/src/CMakeLists.txt
|
||||||
|
index 1ef20d0..d9e90ed 100644
|
||||||
|
--- a/GG/src/CMakeLists.txt
|
||||||
|
+++ b/GG/src/CMakeLists.txt
|
||||||
|
@@ -75,15 +75,16 @@ target_link_libraries(GiGi ${GiGi_LINK_LIBS})
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS GiGi
|
||||||
|
- LIBRARY DESTINATION lib${LIB_SUFFIX}
|
||||||
|
- RUNTIME DESTINATION .
|
||||||
|
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
COMPONENT COMPONENT_GIGI
|
||||||
|
)
|
||||||
|
|
||||||
|
if (BUILD_DEVEL_PACKAGE)
|
||||||
|
install(
|
||||||
|
TARGETS GiGi
|
||||||
|
- ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT COMPONENT_GIGI_DEVEL
|
||||||
|
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
+ COMPONENT COMPONENT_GIGI_DEVEL
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
@@ -98,7 +99,7 @@ if (UNIX AND BUILD_DEVEL_PACKAGE)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${CMAKE_BINARY_DIR}/GiGi.pc
|
||||||
|
- DESTINATION lib${LIB_SUFFIX}/pkgconfig
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||||
|
COMPONENT COMPONENT_GIGI_DEVEL
|
||||||
|
OPTIONAL
|
||||||
|
)
|
||||||
|
diff --git a/GG/src/SDL/CMakeLists.txt b/GG/src/SDL/CMakeLists.txt
|
||||||
|
index 868778d..3003034 100644
|
||||||
|
--- a/GG/src/SDL/CMakeLists.txt
|
||||||
|
+++ b/GG/src/SDL/CMakeLists.txt
|
||||||
|
@@ -24,15 +24,16 @@ target_link_libraries(GiGiSDL ${GiGiSDL_LINK_LIBS})
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS GiGiSDL
|
||||||
|
- LIBRARY DESTINATION lib${LIB_SUFFIX}
|
||||||
|
- RUNTIME DESTINATION .
|
||||||
|
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
COMPONENT COMPONENT_GIGISDL
|
||||||
|
)
|
||||||
|
|
||||||
|
if (BUILD_DEVEL_PACKAGE)
|
||||||
|
install(
|
||||||
|
TARGETS GiGiSDL
|
||||||
|
- ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT COMPONENT_GIGISDL_DEVEL
|
||||||
|
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
+ COMPONENT COMPONENT_GIGISDL_DEVEL
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
@@ -47,7 +48,7 @@ if (UNIX AND BUILD_DEVEL_PACKAGE)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${CMAKE_BINARY_DIR}/GiGiSDL.pc
|
||||||
|
- DESTINATION lib${LIB_SUFFIX}/pkgconfig
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||||
|
COMPONENT COMPONENT_GIGI_DEVEL
|
||||||
|
OPTIONAL
|
||||||
|
)
|
||||||
|
diff --git a/client/AI/CMakeLists.txt b/client/AI/CMakeLists.txt
|
||||||
|
index fc559ed..082a9ab 100644
|
||||||
|
--- a/client/AI/CMakeLists.txt
|
||||||
|
+++ b/client/AI/CMakeLists.txt
|
||||||
|
@@ -63,7 +63,7 @@ target_link_libraries(freeorionca
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS freeorionca
|
||||||
|
- RUNTIME DESTINATION bin
|
||||||
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
|
||||||
|
diff --git a/client/human/CMakeLists.txt b/client/human/CMakeLists.txt
|
||||||
|
index afd6294..4c1d308 100644
|
||||||
|
--- a/client/human/CMakeLists.txt
|
||||||
|
+++ b/client/human/CMakeLists.txt
|
||||||
|
@@ -212,13 +212,7 @@ target_link_libraries(freeorion
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS freeorion
|
||||||
|
- RUNTIME DESTINATION bin
|
||||||
|
- COMPONENT COMPONENT_FREEORION
|
||||||
|
-)
|
||||||
|
-
|
||||||
|
-install(
|
||||||
|
- FILES
|
||||||
|
- DESTINATION share/freeorion
|
||||||
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
|
||||||
|
diff --git a/parse/CMakeLists.txt b/parse/CMakeLists.txt
|
||||||
|
index 3b1987e..ebf8632 100644
|
||||||
|
--- a/parse/CMakeLists.txt
|
||||||
|
+++ b/parse/CMakeLists.txt
|
||||||
|
@@ -95,8 +95,8 @@ endif ()
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS freeorionparse
|
||||||
|
- LIBRARY DESTINATION lib${LIB_SUFFIX}/freeorion
|
||||||
|
- RUNTIME DESTINATION .
|
||||||
|
+ LIBRARY DESTINATION ${FreeOrion_INSTALL_LIBDIR}
|
||||||
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
|
||||||
|
diff --git a/parse/test/CMakeLists.txt b/parse/test/CMakeLists.txt
|
||||||
|
index 6929827..be207b4 100644
|
||||||
|
--- a/parse/test/CMakeLists.txt
|
||||||
|
+++ b/parse/test/CMakeLists.txt
|
||||||
|
@@ -26,12 +26,6 @@ target_link_libraries(test_parsers
|
||||||
|
${CMAKE_THREAD_LIBS_INIT}
|
||||||
|
)
|
||||||
|
|
||||||
|
-install(
|
||||||
|
- TARGETS test_parsers
|
||||||
|
- RUNTIME DESTINATION .
|
||||||
|
- COMPONENT COMPONENT_FREEORION
|
||||||
|
-)
|
||||||
|
-
|
||||||
|
find_package (Boost REQUIRED COMPONENTS unit_test_framework)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
@@ -55,12 +49,6 @@ target_link_libraries(test_parsers_boost
|
||||||
|
${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
|
-install(
|
||||||
|
- TARGETS test_parsers_boost
|
||||||
|
- RUNTIME DESTINATION .
|
||||||
|
- COMPONENT COMPONENT_FREEORION
|
||||||
|
-)
|
||||||
|
-
|
||||||
|
add_test(enum_parser ${CMAKE_BINARY_DIR}/test_parsers_boost --run_test EnumParser)
|
||||||
|
add_test(value_ref_double_parser ${CMAKE_BINARY_DIR}/test_parsers_boost --run_test ValueRefDoubleParser)
|
||||||
|
add_test(value_ref_int_parser ${CMAKE_BINARY_DIR}/test_parsers_boost --run_test ValueRefIntParser)
|
||||||
|
diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt
|
||||||
|
index 9a8d7a5..9ead9d0 100644
|
||||||
|
--- a/server/CMakeLists.txt
|
||||||
|
+++ b/server/CMakeLists.txt
|
||||||
|
@@ -65,7 +65,7 @@ target_link_libraries(freeoriond
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS freeoriond
|
||||||
|
- RUNTIME DESTINATION bin
|
||||||
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
COMPONENT COMPONENT_FREEORION
|
||||||
|
)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.10.0
|
||||||
|
|
@ -0,0 +1,139 @@
|
|||||||
|
From 5a3c309cd4025f207e3a77fe57021934e80de703 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marcel Metz <mmetz@adrian-broher.net>
|
||||||
|
Date: Mon, 22 Aug 2016 13:14:31 +0200
|
||||||
|
Subject: [PATCH] Make universe object destructors public for boost version
|
||||||
|
1.61
|
||||||
|
|
||||||
|
Fixes #887
|
||||||
|
|
||||||
|
The boost::serialization library changed the way objects are delete when
|
||||||
|
deserializing referenced objects [boost::serialization 69ecae6] which
|
||||||
|
was leading to a compile error. To work around this for the FreeOrion
|
||||||
|
release 0.4.6 we decided to make the UniverseObject derived class
|
||||||
|
destructors public.
|
||||||
|
|
||||||
|
[boost::serialization]:
|
||||||
|
https://github.com/boostorg/serialization/commit/69ecae6919b417be2b2558aefffea97fbe50d4a8
|
||||||
|
---
|
||||||
|
universe/Building.h | 7 +++++++
|
||||||
|
universe/Field.h | 7 +++++++
|
||||||
|
universe/Fleet.h | 7 +++++++
|
||||||
|
universe/Planet.h | 7 +++++++
|
||||||
|
universe/Ship.h | 7 +++++++
|
||||||
|
universe/System.h | 7 +++++++
|
||||||
|
6 files changed, 42 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/universe/Building.h b/universe/Building.h
|
||||||
|
index 5d21130..18d4810 100644
|
||||||
|
--- a/universe/Building.h
|
||||||
|
+++ b/universe/Building.h
|
||||||
|
@@ -68,7 +68,14 @@ class FO_COMMON_API Building : public UniverseObject {
|
||||||
|
|
||||||
|
template <class T> friend void boost::python::detail::value_destroyer<false>::execute(T const volatile* p);
|
||||||
|
template <class T> friend void boost::checked_delete(T* x);
|
||||||
|
+
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+public:
|
||||||
|
+#endif
|
||||||
|
~Building() {}
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+protected:
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
virtual Building* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Building
|
||||||
|
//@}
|
||||||
|
diff --git a/universe/Field.h b/universe/Field.h
|
||||||
|
index 8cb5b9a..f1d454e 100644
|
||||||
|
--- a/universe/Field.h
|
||||||
|
+++ b/universe/Field.h
|
||||||
|
@@ -47,7 +47,14 @@ class FO_COMMON_API Field : public UniverseObject {
|
||||||
|
|
||||||
|
template <class T> friend void boost::python::detail::value_destroyer<false>::execute(T const volatile* p);
|
||||||
|
template <class T> friend void boost::checked_delete(T* x);
|
||||||
|
+
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+public:
|
||||||
|
+#endif
|
||||||
|
~Field() {}
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+protected:
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
virtual Field* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Field
|
||||||
|
//@}
|
||||||
|
diff --git a/universe/Fleet.h b/universe/Fleet.h
|
||||||
|
index 923c2c7..a6a1fe0 100644
|
||||||
|
--- a/universe/Fleet.h
|
||||||
|
+++ b/universe/Fleet.h
|
||||||
|
@@ -149,7 +149,14 @@ class FO_COMMON_API Fleet : public UniverseObject {
|
||||||
|
|
||||||
|
template <class T> friend void boost::python::detail::value_destroyer<false>::execute(T const volatile* p);
|
||||||
|
template <class T> friend void boost::checked_delete(T* x);
|
||||||
|
+
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+public:
|
||||||
|
+#endif
|
||||||
|
~Fleet() {}
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+protected:
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
virtual Fleet* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Fleet
|
||||||
|
//@}
|
||||||
|
diff --git a/universe/Planet.h b/universe/Planet.h
|
||||||
|
index ec4a6c3..44289ef 100644
|
||||||
|
--- a/universe/Planet.h
|
||||||
|
+++ b/universe/Planet.h
|
||||||
|
@@ -183,7 +183,14 @@ class FO_COMMON_API Planet :
|
||||||
|
|
||||||
|
template <class T> friend void boost::python::detail::value_destroyer<false>::execute(T const volatile* p);
|
||||||
|
template <class T> friend void boost::checked_delete(T* x);
|
||||||
|
+
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+public:
|
||||||
|
+#endif
|
||||||
|
~Planet() {}
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+protected:
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
virtual Planet* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Planet
|
||||||
|
//@}
|
||||||
|
diff --git a/universe/Ship.h b/universe/Ship.h
|
||||||
|
index aa71038..4881086 100644
|
||||||
|
--- a/universe/Ship.h
|
||||||
|
+++ b/universe/Ship.h
|
||||||
|
@@ -103,7 +103,14 @@ class FO_COMMON_API Ship : public UniverseObject {
|
||||||
|
|
||||||
|
template <class T> friend void boost::python::detail::value_destroyer<false>::execute(T const volatile* p);
|
||||||
|
template <class T> friend void boost::checked_delete(T* x);
|
||||||
|
+
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+public:
|
||||||
|
+#endif
|
||||||
|
~Ship() {}
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+protected:
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
virtual Ship* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Ship
|
||||||
|
//@}
|
||||||
|
diff --git a/universe/System.h b/universe/System.h
|
||||||
|
index 0740720..5ecb684 100644
|
||||||
|
--- a/universe/System.h
|
||||||
|
+++ b/universe/System.h
|
||||||
|
@@ -132,7 +132,14 @@ class FO_COMMON_API System : public UniverseObject {
|
||||||
|
|
||||||
|
template <class T> friend void boost::python::detail::value_destroyer<false>::execute(T const volatile* p);
|
||||||
|
template <class T> friend void boost::checked_delete(T* x);
|
||||||
|
+
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+public:
|
||||||
|
+#endif
|
||||||
|
~System() {}
|
||||||
|
+#if BOOST_VERSION == 106100
|
||||||
|
+protected:
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
virtual System* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this System
|
||||||
|
//@}
|
@ -0,0 +1,49 @@
|
|||||||
|
From 70c19e312ae86919bd77b39d45fa35dc4b66d458 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marcel Metz <mmetz@adrian-broher.net>
|
||||||
|
Date: Sun, 21 Aug 2016 20:23:48 +0200
|
||||||
|
Subject: [PATCH] Use old boost::optional implementation for boost 1.61
|
||||||
|
|
||||||
|
Fixes #777
|
||||||
|
|
||||||
|
- boost::spirit v 1.61 relies on the fact that the `Variant` template
|
||||||
|
type of `boost::spirit::qi::detail::find_substitute` typedefs a
|
||||||
|
`types` subtype.
|
||||||
|
- For the failing instantiation of `find_substition` a
|
||||||
|
`boost::optional` is used as `Variant` template type.
|
||||||
|
- `boost::optional` removed its `types` subtype implementation with
|
||||||
|
commit [boost::optional b5b8414c0], which means that this type is
|
||||||
|
missing on every boost version 1.61 and onwards (until fixed of course).
|
||||||
|
- Using the BOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL
|
||||||
|
reenables the old implementation of boost::optional, which provides a
|
||||||
|
`types` subtype.
|
||||||
|
|
||||||
|
This commits enables said define for boost 1.61 only, because I consider
|
||||||
|
this an upstream bug. The upstream bug is tracked as [boost #12349].
|
||||||
|
|
||||||
|
[boost::optional b5b8414c0]: https://github.com/boostorg/optional/commit/b5b8414c069a2c5f16cc1f9813d069c8b36e2c35
|
||||||
|
[boost #12349]: https://svn.boost.org/trac/boost/ticket/12349
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 10 ++++++++++
|
||||||
|
1 file changed, 10 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 3e70e72..65f1537 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -143,6 +143,16 @@ find_package(Boost ${MINIMUM_BOOST_VERSION} COMPONENTS chrono date_time filesyst
|
||||||
|
find_package(ZLIB REQUIRED)
|
||||||
|
find_package(Freetype REQUIRED)
|
||||||
|
|
||||||
|
+if(${Boost_VERSION} EQUAL "106100")
|
||||||
|
+ # with boost 1.61 some boost::optional internals were changed. However
|
||||||
|
+ # boost::spirit relies on some API the old implementation provided. This
|
||||||
|
+ # define enables the usage of the old boost::optional implementation.
|
||||||
|
+ # boost upstream tracks this bug as #12349
|
||||||
|
+ add_definitions(
|
||||||
|
+ -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL
|
||||||
|
+ )
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
include_directories(
|
||||||
|
${Boost_INCLUDE_DIRS}
|
||||||
|
${ZLIB_INCLUDE_DIR}
|
87
packages/games-strategy/freeorion/freeorion-0.4.5.exheres-0
Normal file
87
packages/games-strategy/freeorion/freeorion-0.4.5.exheres-0
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
CMAKE_SOURCE=${WORKBASE}/src-tarball
|
||||||
|
|
||||||
|
require github [ user=${PN} release=v${PV} pnv=FreeOrion_v${PV}_2015-09-01.f203162_Source suffix=tar.gz ]
|
||||||
|
require cmake [ api=2 ]
|
||||||
|
require gtk-icon-cache
|
||||||
|
|
||||||
|
SUMMARY="A free turn-based space empire and galactic conquest game"
|
||||||
|
DESCRIPTION="
|
||||||
|
FreeOrion is a free, open source, turn-based space empire and galactic conquest
|
||||||
|
(4X) computer game being designed and built by the FreeOrion project. FreeOrion
|
||||||
|
is inspired by the tradition of the Master of Orion games, but is not a clone or
|
||||||
|
remake of that series or any other game.
|
||||||
|
"
|
||||||
|
HOMEPAGE+=" http://www.freeorion.org"
|
||||||
|
|
||||||
|
LICENCES="GPL-2 LGPL-2.1 CCPL-Attribution-ShareAlike-3.0"
|
||||||
|
SLOT="0"
|
||||||
|
PLATFORMS="~amd64"
|
||||||
|
MYOPTIONS="
|
||||||
|
( providers: ijg-jpeg jpeg-turbo ) [[ number-selected = exactly-one ]]
|
||||||
|
"
|
||||||
|
|
||||||
|
DEPENDENCIES="
|
||||||
|
build:
|
||||||
|
virtual/pkg-config
|
||||||
|
build+run:
|
||||||
|
dev-lang/python:2.7
|
||||||
|
dev-libs/boost
|
||||||
|
media-libs/SDL:2[X]
|
||||||
|
media-libs/freetype:2
|
||||||
|
media-libs/glew
|
||||||
|
media-libs/libogg
|
||||||
|
media-libs/libpng:=
|
||||||
|
media-libs/libvorbis
|
||||||
|
media-libs/openal
|
||||||
|
media-libs/tiff
|
||||||
|
sci-physics/bullet
|
||||||
|
sys-libs/zlib
|
||||||
|
x11-dri/glu
|
||||||
|
x11-dri/mesa
|
||||||
|
providers:ijg-jpeg? ( media-libs/jpeg:= )
|
||||||
|
providers:jpeg-turbo? ( media-libs/libjpeg-turbo )
|
||||||
|
"
|
||||||
|
|
||||||
|
BUGS_TO="hasufell@posteo.de"
|
||||||
|
|
||||||
|
DEFAULT_SRC_PREPARE_PATCHES=(
|
||||||
|
"${FILES}"/70c19e312ae86919bd77b39d45fa35dc4b66d458.patch
|
||||||
|
"${FILES}"/5a3c309cd4025f207e3a77fe57021934e80de703.patch
|
||||||
|
"${FILES}"/0001-Backport-of-d87fd278225fb35836471eb0425b6675530d22d9.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
CMAKE_SRC_CONFIGURE_PARAMS=(
|
||||||
|
-DRELEASE_COMPILE_FLAGS=""
|
||||||
|
-DCMAKE_SKIP_RPATH=ON
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
# parse subdir sets -O3
|
||||||
|
edo sed -e "s:-O3::" -i "${CMAKE_SOURCE}"/parse/CMakeLists.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
# we need a wrapper
|
||||||
|
edo mv "${IMAGE}"/usr/$(exhost --target)/bin/${PN} \
|
||||||
|
"${IMAGE}"/usr/$(exhost --target)/bin/${PN}.bin
|
||||||
|
|
||||||
|
herebin "${PN}" <<EOF
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ "\${LD_LIBRARY_PATH+set}" = "set" ] ; then
|
||||||
|
export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:/usr/$(exhost --target)/lib/freeorion"
|
||||||
|
else
|
||||||
|
export LD_LIBRARY_PATH="/usr/$(exhost --target)/lib/freeorion"
|
||||||
|
fi
|
||||||
|
exec /usr/$(exhost --target)/bin/${PN}.bin --resource-dir /usr/share/freeorion/default "\$@"
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user