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}
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
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}
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.
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")