summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2016-08-02 17:58:26 (GMT)
committerTony Theodore <tonyt@logyst.com>2016-08-02 17:58:26 (GMT)
commitb07b534fd5516fac860868b01406da62834d26e4 (patch)
treec2385b5e9cc3a9d8a7e9aec02d4795fe1d10c830
parentc2a1d8000ab984524897bf9c79080e38a8556ab1 (diff)
downloadmxe-b07b534fd5516fac860868b01406da62834d26e4.zip
mxe-b07b534fd5516fac860868b01406da62834d26e4.tar.gz
mxe-b07b534fd5516fac860868b01406da62834d26e4.tar.bz2
cegui: separate shared/static builds and manually configure pc files
-rw-r--r--src/cegui-1-fixes.patch85
-rw-r--r--src/cegui.mk16
2 files changed, 100 insertions, 1 deletions
diff --git a/src/cegui-1-fixes.patch b/src/cegui-1-fixes.patch
new file mode 100644
index 0000000..cda415d
--- /dev/null
+++ b/src/cegui-1-fixes.patch
@@ -0,0 +1,85 @@
+This file is part of MXE.
+See index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Wed, 3 Aug 2016 03:19:48 +1000
+Subject: [PATCH] cegui: separate shared and static builds
+
+minimal workaround till correctly implemented upstream:
+https://bitbucket.org/cegui/cegui/issues/1132/libxml2-based-xml-parser-fails-to#comment-29553011
+
+diff --git a/cmake/CEGUIMacros.cmake b/cmake/CEGUIMacros.cmake
+index 1111111..2222222 100644
+--- a/cmake/CEGUIMacros.cmake
++++ b/cmake/CEGUIMacros.cmake
+@@ -49,7 +49,9 @@ endmacro()
+ # Add libs to a target, and correctly handles static versions of libs built by the project
+ #
+ macro (cegui_target_link_libraries _TARGET_NAME)
+- target_link_libraries(${_TARGET_NAME} ${ARGN})
++ if (CEGUI_BUILD_SHARED_CONFIGURATION)
++ target_link_libraries(${_TARGET_NAME} ${ARGN})
++ endif()
+
+ get_target_property(_TARGET_EXISTS ${_TARGET_NAME}_Static TYPE)
+ if (_TARGET_EXISTS)
+@@ -167,8 +169,10 @@ macro (cegui_add_dependency _TARGET_NAME _DEP_NAME)
+ ###########################################################################
+ # NON-STATIC VERSION OF TARGET
+ ###########################################################################
+- if (${_DEP_NAME}_DEFINITIONS)
+- set_property( TARGET ${_TARGET_NAME} APPEND PROPERTY COMPILE_DEFINITIONS ${${_DEP_NAME}_DEFINITIONS} )
++ if (CEGUI_BUILD_SHARED_CONFIGURATION)
++ if (${_DEP_NAME}_DEFINITIONS)
++ set_property( TARGET ${_TARGET_NAME} APPEND PROPERTY COMPILE_DEFINITIONS ${${_DEP_NAME}_DEFINITIONS} )
++ endif()
+ endif()
+ if (${_DEP_NAME}_COMPILE_FLAGS)
+ set_property( TARGET ${_TARGET_NAME} APPEND PROPERTY COMPILE_FLAGS ${${_DEP_NAME}_COMPILE_FLAGS} )
+@@ -252,10 +256,12 @@ macro (cegui_add_library_impl _LIB_NAME _IS_MODULE _SOURCE_FILES_VAR _HEADER_FIL
+ ###########################################################################
+ # SHARED LIBRARY SET UP
+ ###########################################################################
+- add_library(${_LIB_NAME} ${_LIB_TYPE} ${${_SOURCE_FILES_VAR}} ${${_HEADER_FILES_VAR}})
+- set_target_properties(${_LIB_NAME} PROPERTIES DEFINE_SYMBOL ${_CEGUI_EXPORT_DEFINE})
++ if (CEGUI_BUILD_SHARED_CONFIGURATION)
++ add_library(${_LIB_NAME} ${_LIB_TYPE} ${${_SOURCE_FILES_VAR}} ${${_HEADER_FILES_VAR}})
++ set_target_properties(${_LIB_NAME} PROPERTIES DEFINE_SYMBOL ${_CEGUI_EXPORT_DEFINE})
++ endif()
+
+- if (NOT CEGUI_BUILD_SHARED_LIBS_WITH_STATIC_DEPENDENCIES)
++ if (NOT(CEGUI_BUILD_SHARED_LIBS_WITH_STATIC_DEPENDENCIES) AND CEGUI_BUILD_SHARED_CONFIGURATION)
+ # Starting with CMake 2.8.12 LINK_INTERFACE_LIBRARIES was renamed to INTERFACE_LINK_LIBRARIES
+ if (${CMAKE_VERSION} VERSION_GREATER 2.8.12 OR ${CMAKE_VERSION} VERSION_EQUAL 2.8.12)
+ set_target_properties(${_LIB_NAME} PROPERTIES
+@@ -289,7 +295,7 @@ macro (cegui_add_library_impl _LIB_NAME _IS_MODULE _SOURCE_FILES_VAR _HEADER_FIL
+ # Do not version modules, since we dlopen these directly and need to know
+ # the name is what we think it will be (and not rely on symlinks which will
+ # not be installed always, but usually only as part of *-dev packages).
+- if (NOT ${_IS_MODULE} AND NOT ANDROID)
++ if (NOT ${_IS_MODULE} AND NOT ANDROID AND CEGUI_BUILD_SHARED_CONFIGURATION)
+ if (NOT APPLE OR CEGUI_APPLE_DYLIB_SET_VERSION_INFO)
+ set_target_properties(${_LIB_NAME} PROPERTIES
+ VERSION ${CEGUI_ABI_VERSION}
+@@ -308,11 +314,13 @@ macro (cegui_add_library_impl _LIB_NAME _IS_MODULE _SOURCE_FILES_VAR _HEADER_FIL
+ set(_CEGUI_LIB_DEST ${CEGUI_LIB_INSTALL_DIR})
+ endif()
+
+- install(TARGETS ${_LIB_NAME}
+- RUNTIME DESTINATION bin COMPONENT cegui_bin
+- LIBRARY DESTINATION ${_CEGUI_LIB_DEST} COMPONENT cegui_lib
+- ARCHIVE DESTINATION ${CEGUI_LIB_INSTALL_DIR} COMPONENT cegui_devel
+- )
++ if (CEGUI_BUILD_SHARED_CONFIGURATION)
++ install(TARGETS ${_LIB_NAME}
++ RUNTIME DESTINATION bin COMPONENT cegui_bin
++ LIBRARY DESTINATION ${_CEGUI_LIB_DEST} COMPONENT cegui_lib
++ ARCHIVE DESTINATION ${CEGUI_LIB_INSTALL_DIR} COMPONENT cegui_devel
++ )
++ endif()
+
+ if (CEGUI_BUILD_STATIC_CONFIGURATION)
+ install(TARGETS ${_LIB_NAME}_Static
diff --git a/src/cegui.mk b/src/cegui.mk
index aaf0a87..924ffeb 100644
--- a/src/cegui.mk
+++ b/src/cegui.mk
@@ -29,7 +29,9 @@ endef
# freeimage and xerces don't have shared builds - disable with $(CMAKE_STATIC_BOOL)
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && '$(TARGET)-cmake' \
+ -DCEGUI_BUILD_SHARED_CONFIGURATION=$(CMAKE_SHARED_BOOL) \
-DCEGUI_BUILD_STATIC_CONFIGURATION=$(CMAKE_STATIC_BOOL) \
+ -DCEGUI_BUILD_STATIC_FACTORY_MODULE=$(CMAKE_STATIC_BOOL) \
-DCEGUI_INSTALL_PKGCONFIG=ON \
-DCEGUI_SAMPLES_ENABLED=OFF \
-DCEGUI_BUILD_TESTS=OFF \
@@ -65,8 +67,20 @@ define $(PKG)_BUILD
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' VERBOSE=1
$(MAKE) -C '$(BUILD_DIR)' -j 1 install VERBOSE=1
+ # reconfigure pc files
+ # https://bitbucket.org/cegui/cegui/issues/1135/pkg-config-files-not-installed-when-using#comment-29605718
+ $(SED) -i 's/Requires:\(.*\)/Requires: \1 gl glew glut/' '$(PREFIX)/$(TARGET)/lib/pkgconfig/CEGUI-0-OPENGL.pc'
+ $(if $(BUILD_STATIC),\
+ $(SED) -i 's#\(-lCEGUI.*-0\>\)#\1_Static#g' '$(PREFIX)/$(TARGET)/lib/pkgconfig/CEGUI-0'*.pc
+ (echo 'Libs: -lCEGUIFreeImageImageCodec_Static \
+ -lCEGUIXercesParser_Static \
+ -lCEGUICoreWindowRendererSet_Static';\
+ echo 'Requires.private: freeimage freetype2 libpcre xerces-c';\
+ echo 'Cflags.private: -DCEGUI_STATIC';\
+ ) >> '$(PREFIX)/$(TARGET)/lib/pkgconfig/CEGUI-0.pc')
+
'$(TARGET)-g++' \
-W -Wall -ansi -pedantic \
'$(2).cpp' -o '$(PREFIX)/$(TARGET)/bin/test-cegui.exe' \
- `$(TARGET)-pkg-config --cflags --libs CEGUI-0-OPENGL glut gl`
+ `$(TARGET)-pkg-config --cflags --libs CEGUI-0-OPENGL`
endef