summaryrefslogtreecommitdiffstats
path: root/contrib/fltk/fixes/0001-Add-BUILD_STATIC-feature-from-TigerVNC-to-optionally.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/fltk/fixes/0001-Add-BUILD_STATIC-feature-from-TigerVNC-to-optionally.patch')
-rw-r--r--contrib/fltk/fixes/0001-Add-BUILD_STATIC-feature-from-TigerVNC-to-optionally.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/contrib/fltk/fixes/0001-Add-BUILD_STATIC-feature-from-TigerVNC-to-optionally.patch b/contrib/fltk/fixes/0001-Add-BUILD_STATIC-feature-from-TigerVNC-to-optionally.patch
new file mode 100644
index 00000000..9aac0372
--- /dev/null
+++ b/contrib/fltk/fixes/0001-Add-BUILD_STATIC-feature-from-TigerVNC-to-optionally.patch
@@ -0,0 +1,67 @@
+>From 7a15d1c9a908afe429c1aba1c27516d18bdea299 Mon Sep 17 00:00:00 2001
+From: DRC <information@virtualgl.org>
+Date: Tue, 26 Feb 2013 03:37:12 -0600
+Subject: [PATCH 1/4] Add BUILD_STATIC feature from TigerVNC to (optionally)
+ prevent FLTK from depending on libgcc and libstdc++
+
+---
+ CMakeLists.txt | 43 +++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 43 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a1ee285..7d9d94b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -150,6 +150,49 @@ mark_as_advanced(LIB_CAIRO LIB_fontconfig LIB_freetype)
+ mark_as_advanced(LIB_GL LIB_MesaGL)
+ mark_as_advanced(LIB_jpeg LIB_png LIB_zlib)
+
++# This ensures that we don't depend on libstdc++ or libgcc
++if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE AND NOT CYGWIN)
++ option(BUILD_STATIC
++ "Link statically against libgcc and libstdc++, if possible" OFF)
++ if(BUILD_STATIC)
++ # For some reason, simply passing ${CMAKE_CXX_FLAGS} to the compiler in
++ # execute_process() doesn't work. Grrr...
++ if(CMAKE_SIZEOF_VOID_P MATCHES 8)
++ execute_process(COMMAND ${CMAKE_CXX_COMPILER} -m64
++ --print-file-name=libstdc++.a OUTPUT_VARIABLE LIBSTDCPLUSPLUS
++ RESULT_VARIABLE RESULT)
++ else()
++ execute_process(COMMAND ${CMAKE_CXX_COMPILER} -m32
++ --print-file-name=libstdc++.a OUTPUT_VARIABLE LIBSTDCPLUSPLUS
++ RESULT_VARIABLE RESULT)
++ endif()
++ string(REGEX REPLACE "\n" "" LIBSTDCPLUSPLUS ${LIBSTDCPLUSPLUS})
++ if(RESULT MATCHES 0 AND LIBSTDCPLUSPLUS)
++ message(STATUS "Linking with static libstdc++:\n ${LIBSTDCPLUSPLUS}")
++ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/staticlib)
++ execute_process(COMMAND ${CMAKE_COMMAND} -E remove
++ ${CMAKE_BINARY_DIR}/staticlib/libstdc++.a)
++ if(MINGW)
++ execute_process(COMMAND ${CMAKE_COMMAND} -E copy
++ ${LIBSTDCPLUSPLUS} ${CMAKE_BINARY_DIR}/staticlib/libstdc++.a)
++ else()
++ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
++ ${LIBSTDCPLUSPLUS} ${CMAKE_BINARY_DIR}/staticlib/libstdc++.a)
++ endif()
++ set(CMAKE_EXE_LINKER_FLAGS
++ "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_BINARY_DIR}/staticlib")
++ set(CMAKE_SHARED_LINKER_FLAGS
++ "${CMAKE_SHARED_LINKER_FLAGS} -L${CMAKE_BINARY_DIR}/staticlib")
++ else()
++ message(WARNING Cannot find static libstdc++. TigerVNC will depend on dynamic libstdc++.)
++ endif()
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc")
++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc")
++ set(CMAKE_SHARED_LINKER_FLAGS
++ "${CMAKE_SHARED_LINKER_FLAGS} -static-libgcc")
++ endif()
++endif()
++
+ #######################################################################
+ # functions
+ include(CheckFunctionExists)
+--
+1.8.1.3
+