File system-libraries.patch of Package warsow
diff -Nur warsow_21_sdk/source/source/angelwrap/CMakeLists.txt new/source/source/angelwrap/CMakeLists.txt
--- warsow_21_sdk/source/source/angelwrap/CMakeLists.txt 2016-03-26 20:22:10.000000000 +0100
+++ new/source/source/angelwrap/CMakeLists.txt 2016-08-16 21:55:00.247515029 +0200
@@ -26,6 +26,6 @@
qf_set_output_dir(angelwrap libs)
# TODO: Remove this hack from here
-if (${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR MINGW)
+if (NOT SYSTEM_ANGELSCRIPT AND (${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR MINGW))
add_dependencies(angelwrap ${ANGELSCRIPT})
endif()
diff -Nur warsow_21_sdk/source/source/CMakeLists.txt new/source/source/CMakeLists.txt
--- warsow_21_sdk/source/source/CMakeLists.txt 2016-03-26 20:22:10.000000000 +0100
+++ new/source/source/CMakeLists.txt 2016-08-17 00:30:20.602917045 +0200
@@ -43,6 +43,8 @@
option(USE_SDL2 "Build using SDL2" OFF)
option(GAME_MODULES_ONLY "Only build game modules" OFF)
+option(SYSTEM_ANGELSCRIPT "Use systems angelscript library" OFF)
+option(SYSTEM_LIBROCKET "Use systems libRocket" OFF)
# Windows specific settings
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
@@ -183,7 +185,7 @@
endif()
endif()
-if (${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR MINGW)
+if ((${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR MINGW) AND NOT SYSTEM_ANGELSCRIPT)
# On Linux we build angelscript from source
set(ANGELSCRIPT_DIR ${CMAKE_HOME_DIRECTORY}/../libsrcs/angelscript/sdk/angelscript)
if (MINGW)
@@ -215,10 +217,14 @@
add_dependencies(tar_gz ${QFUSION_CLIENT_NAME} game ${QFUSION_SERVER_NAME} ${QFUSION_TVSERVER_NAME})
endif()
-# We build libRocket from source
-set(LIBROCKET_DIR ${CMAKE_HOME_DIRECTORY}/../libsrcs/libRocket/libRocket)
-set(LIBROCKET_INCLUDE_DIR ${LIBROCKET_DIR}/Include)
-set(LIBROCKET_SOURCE_DIR ${LIBROCKET_DIR}/Source)
+if (NOT SYSTEM_LIBROCKET)
+ # We build libRocket from source
+ set(LIBROCKET_DIR ${CMAKE_HOME_DIRECTORY}/../libsrcs/libRocket/libRocket)
+ set(LIBROCKET_INCLUDE_DIR ${LIBROCKET_DIR}/Include)
+ set(LIBROCKET_SOURCE_DIR ${LIBROCKET_DIR}/Source)
+else()
+ find_package(Rocket REQUIRED)
+endif()
if (NOT GAME_MODULES_ONLY)
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
diff -Nur warsow_21_sdk/source/source/ui/CMakeLists.txt new/source/source/ui/CMakeLists.txt
--- warsow_21_sdk/source/source/ui/CMakeLists.txt 2016-03-26 20:22:10.000000000 +0100
+++ new/source/source/ui/CMakeLists.txt 2016-08-17 00:30:42.275209019 +0200
@@ -52,9 +52,17 @@
include_directories(${ANGELSCRIPT_INCLUDE_DIR} ${LIBROCKET_INCLUDE_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}) # for ui_precompiled.h
-add_library(ui SHARED ${ROCKET_ROOT_HEADERS} ${ROCKET_CORE_HEADERS} ${ROCKET_CONTROLS_HEADERS} ${ROCKET_CORE_SOURCES} ${ROCKET_CONTROLS_SOURCES} ${UI_SOURCES} ${UI_HEADERS})
-target_link_libraries(ui PRIVATE)
+if(NOT SYSTEM_LIBROCKET)
+ add_library(rocket OBJECT ${ROCKET_ROOT_HEADERS} ${ROCKET_CORE_HEADERS} ${ROCKET_CONTROLS_HEADERS} ${ROCKET_CORE_SOURCES} ${ROCKET_CONTROLS_SOURCES})
+ set_target_properties(rocket PROPERTIES
+ COMPILE_DEFINITIONS "ROCKET_STATIC_LIB;_SECURE_SCL=0"
+ COMPILE_FLAGS "-fPIC"
+ )
+ set(LIBROCKET_OBJECTS $<TARGET_OBJECTS:rocket>)
+endif()
+
+add_library(ui SHARED ${LIBROCKET_OBJECTS} ${UI_SOURCES} ${UI_HEADERS})
+target_link_libraries(ui PRIVATE ${LIBROCKET_CORE_LIBRARY} ${LIBROCKET_CONTROLS_LIBRARY})
add_dependencies(ui angelwrap)
-set_target_properties(ui PROPERTIES COMPILE_DEFINITIONS "ROCKET_STATIC_LIB;_SECURE_SCL=0")
qf_set_output_dir(ui libs)
set_property(TARGET ui PROPERTY CXX_STANDARD 11)