浏览代码

Fix BUILD_STATIC on MinGW and document the feature


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4683 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v1.1.90
DRC 12 年前
父节点
当前提交
e4e604f6ff
共有 2 个文件被更改,包括 19 次插入14 次删除
  1. 11
    11
      BUILDING.txt
  2. 8
    3
      CMakeLists.txt

+ 11
- 11
BUILDING.txt 查看文件

@@ -211,8 +211,8 @@ will clean both the Xvnc and vncviewer builds without destroying any of the
build configuration or module dependencies.


Building the TigerVNC Viewer/Server with Visual C++ (Command Line)
------------------------------------------------------------------
Building the Windows TigerVNC Viewer/Server with Visual C++ (Command Line)
--------------------------------------------------------------------------

cd {build_directory}
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release [additional CMake flags] {source_directory}
@@ -222,8 +222,8 @@ This will build either a 32-bit or a 64-bit version of TigerVNC, depending
on which version of cl.exe is in the PATH.


Building the TigerVNC Viewer/Server with Visual C++ (IDE)
---------------------------------------------------------
Building the Windows TigerVNC Viewer/Server with Visual C++ (IDE)
-----------------------------------------------------------------

Choose the appropriate CMake generator option for your version of Visual Studio
(run "cmake" with no arguments for a list of available generators.) For
@@ -237,8 +237,8 @@ configurations in that project ("Debug", "Release", etc.) to generate a full
build of TigerVNC.


Building the TigerVNC Viewer with MinGW
---------------------------------------
Building the Windows TigerVNC Viewer with MinGW
-----------------------------------------------

cd {build_directory}
cmake -G "MSYS Makefiles" [additional CMake flags] {source_directory}
@@ -256,13 +256,13 @@ NMake, remove "-DCMAKE_BUILD_TYPE=Release" (Debug builds are the default with
NMake.)


Self-Contained MinGW Build
--------------------------
Self-Contained GCC Build
------------------------

If TigerVNC is built using MinGW, then it may depend on the MinGW libgcc DLL.
To eliminate this dependency, add
If TigerVNC is built using GCC (including MinGW), then it may depend on the
libgcc or libstdc++ dynamic libraries. To eliminate this dependency, add

-DCMAKE_C_FLAGS=-static-libgcc -DCMAKE_CXX_FLAGS=-static-libgcc
-DBUILD_STATIC=1

to the CMake command line.


+ 8
- 3
CMakeLists.txt 查看文件

@@ -134,14 +134,19 @@ if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE AND NOT CYGWIN)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/staticlib)
execute_process(COMMAND ${CMAKE_COMMAND} -E remove
${CMAKE_BINARY_DIR}/staticlib/libstdc++.a)
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
${LIBSTDCPLUSPLUS} ${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++. VirtualGL will depend on dynamic libstdc++.)
message(WARNING Cannot find static libstdc++. TigerVNC will depend on dynamic libstdc++.)
endif()
add_definitions(-static-libgcc)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc")

正在加载...
取消
保存