Browse Source

Remove 32-/64-bit distinctions

The migration from 32-bit to 64-bit has long passed. Let's get rid of
all distinctions as native applications it the norm now.
tags/v1.12.90
Pierre Ossman 2 years ago
parent
commit
d0c7b915c7

+ 10
- 84
BUILDING.txt View File

------------------------------------------------ ------------------------------------------------


The following procedure will build the TigerVNC Viewer on Linux and Unix The following procedure will build the TigerVNC Viewer on Linux and Unix
systems. On 64-bit systems, this will build a 64-bit version of TigerVNC. See
"Build Recipes" for specific build instructions for building a 32-bit version
of TigerVNC on 64-bit systems.
systems.


cd {build_directory} cd {build_directory}
cmake -G "Unix Makefiles" [additional CMake flags] {source_directory} cmake -G "Unix Makefiles" [additional CMake flags] {source_directory}
Create Macintosh disk image file that contains an application bundle of the Create Macintosh disk image file that contains an application bundle of the
TigerVNC Viewer TigerVNC Viewer


make udmg

On 64-bit OS X systems, this creates a version of the Macintosh package and
disk image which contains universal i386/x86-64 binaries. You should first
configure a 32-bit out-of-tree build of TigerVNC, then configure a 64-bit
out-of-tree build, then run 'make udmg' from the 64-bit build directory. The
build system will look for the 32-bit build under {source_directory}/osxx86
by default, but you can override this by setting the OSX_X86_BUILD CMake
variable to the directory containing your configured 32-bit build. Either
the 64-bit or 32-bit build can be configured to be backward compatible by
using the instructions in the "Build Recipes" section.



Windows Windows
------- -------
============= =============




32-bit Build on 64-bit Linux/Unix (including OS X)
--------------------------------------------------

Set the following environment variables before building TigerVNC.

CFLAGS='-O3 -m32'
CXXFLAGS='-O3 -m32'
LDFLAGS=-m32

If you are building the TigerVNC Server on a modern Unix/Linux system, then
you will also need to pass the appropriate --host argument when configuring the
X server source (for instance, --host=i686-pc-linux-gnu).


64-bit Backward-Compatible Build on 64-bit OS X
-----------------------------------------------

Add

-DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.5.sdk \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.5

to the CMake command line. The OS X 10.5 SDK must be installed.


32-bit Backward-Compatible Build on 64-bit OS X
-----------------------------------------------

Set the following environment variables:

CC=gcc-4.0
CXX=g++-4.0
CFLAGS='-O3 -m32'
CXXFLAGS='-O3 -m32'
LDFLAGS=-m32

and add

-DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.4u.sdk \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.4

to the CMake command line. The OS X 10.4 SDK must be installed.


64-bit MinGW Build on Cygwin
----------------------------
MinGW Build on Cygwin
---------------------


cd {build_directory} cd {build_directory}
CC=/usr/bin/x86_64-w64-mingw32-gcc CXX=/usr/bin/x86_64-w64-mingw32-g++ \ CC=/usr/bin/x86_64-w64-mingw32-gcc CXX=/usr/bin/x86_64-w64-mingw32-g++ \
-DCMAKE_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib {source_directory} -DCMAKE_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib {source_directory}
make make


This produces a 64-bit build of TigerVNC that does not depend on cygwin1.dll or
This produces a build of TigerVNC that does not depend on cygwin1.dll or
other Cygwin DLL's. The mingw64-x86_64-gcc-core and mingw64-x86_64-gcc-g++ other Cygwin DLL's. The mingw64-x86_64-gcc-core and mingw64-x86_64-gcc-g++
packages (and their dependencies) must be installed. packages (and their dependencies) must be installed.




32-bit MinGW Build on Cygwin
----------------------------

cd {build_directory}
CC=/usr/bin/i686-w64-mingw32-gcc CXX=/usr/bin/i686-w64-mingw32-g++ \
RC=/usr/bin/i686-w64-mingw32-windres \
cmake -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=Windows \
-DDCMAKE_AR=/usr/bin/i686-w64-mingw32-ar \
-DCMAKE_RANLIB=/usr/bin/i686-w64-mingw32-ranlib {source_directory}
make

This produces a 32-bit build of TigerVNC that does not depend on cygwin1.dll or
other Cygwin DLL's. The mingw64-i686-gcc-core and mingw64-i686-gcc-g++
packages (and their dependencies) must be installed.


MinGW-w64 Build on Windows MinGW-w64 Build on Windows
-------------------------- --------------------------


This produces a 64-bit build of TigerVNC using the "native" MinGW-w64 toolchain
This produces a build of TigerVNC using the "native" MinGW-w64 toolchain
(which is faster than the Cygwin version): (which is faster than the Cygwin version):


cd {build_directory} cd {build_directory}
-------------------- --------------------


cd {build_directory} cd {build_directory}
CC={mingw_binary_path}/i386-mingw32-gcc \
CXX={mingw_binary_path}/i386-mingw32-g++ \
RC={mingw_binary_path}/i386-mingw32-windres \
CC={mingw_binary_path}/x86_64-w64-mingw32-gcc \
CXX={mingw_binary_path}/x86_64-w64-mingw32-g++ \
RC={mingw_binary_path}/x86_64-w64-mingw32-windres \
cmake -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=Windows \ cmake -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=Windows \
-DCMAKE_AR={mingw_binary_path}/i386-mingw32-ar \
-DCMAKE_RANLIB={mingw_binary_path}/i386-mingw32-ranlib \
-DCMAKE_AR={mingw_binary_path}/x86_64-w64-mingw32-ar \
-DCMAKE_RANLIB={mingw_binary_path}/x86_64-w64-mingw32-ranlib \
{source_directory} {source_directory}
make make



+ 0
- 6
CMakeLists.txt View File

add_definitions(-D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0) add_definitions(-D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0)
endif() endif()


if(CMAKE_SIZEOF_VOID_P MATCHES 8)
message(STATUS "64-bit build")
else()
message(STATUS "32-bit build")
endif()

# MinGW64 has header support but no library support for IActiveDesktop, so we # MinGW64 has header support but no library support for IActiveDesktop, so we
# need to check for both the header and library and use our own implementation # need to check for both the header and library and use our own implementation
# in common/os if either doesn't exist. # in common/os if either doesn't exist.

+ 0
- 8
release/CMakeLists.txt View File



if(APPLE) if(APPLE)


set(DEFAULT_OSX_X86_BUILD ${CMAKE_SOURCE_DIR}/osxx86)
set(OSX_X86_BUILD ${DEFAULT_OSX_X86_BUILD} CACHE PATH
"Directory containing 32-bit OS X build to include in universal binaries (default: ${DEFAULT_OSX_X86_BUILD})")

configure_file(makemacapp.in makemacapp) configure_file(makemacapp.in makemacapp)
configure_file(Info.plist.in Info.plist) configure_file(Info.plist.in Info.plist)


DEPENDS vncviewer DEPENDS vncviewer
SOURCES makemacapp) SOURCES makemacapp)


add_custom_target(udmg sh makemacapp universal
DEPENDS vncviewer
SOURCES makemacapp)

endif() # APPLE endif() # APPLE





+ 1
- 23
release/makemacapp.in View File



usage() usage()
{ {
echo "$0 [universal]"
echo "$0"
exit 1 exit 1
} }


BUILD=@BUILD@ BUILD=@BUILD@
SRCDIR=@CMAKE_SOURCE_DIR@ SRCDIR=@CMAKE_SOURCE_DIR@
BINDIR=@CMAKE_BINARY_DIR@ BINDIR=@CMAKE_BINARY_DIR@
BUILDDIR32=@OSX_X86_BUILD@
if [ $# -gt 0 ]; then
if [ "$1" = "universal" ]; then
UNIVERSAL=1
fi
fi


cd $BINDIR cd $BINDIR


mkdir -p "$APPROOT/Contents/Resources" mkdir -p "$APPROOT/Contents/Resources"


install -m 755 vncviewer/vncviewer "$APPROOT/Contents/MacOS/TigerVNC Viewer" install -m 755 vncviewer/vncviewer "$APPROOT/Contents/MacOS/TigerVNC Viewer"
if [ $UNIVERSAL = 1 ]; then
if [ ! -d $BUILDDIR32 ]; then
echo ERROR: 32-bit build directory $BUILDDIR32 does not exist
exit 1
fi
if [ ! -f $BUILDDIR32/Makefile ]; then
echo ERROR: 32-bit build directory $BUILDDIR32 is not configured
exit 1
fi
pushd $BUILDDIR32
make
popd
lipo -create -arch i386 $BUILDDIR32/vncviewer/vncviewer -arch x86_64 \
"$APPROOT/Contents/MacOS/TigerVNC Viewer" \
-output "$APPROOT/Contents/MacOS/TigerVNC Viewer"
fi
install -m 644 $SRCDIR/release/tigervnc.icns "$APPROOT/Contents/Resources/" install -m 644 $SRCDIR/release/tigervnc.icns "$APPROOT/Contents/Resources/"
install -m 644 release/Info.plist "$APPROOT/Contents/" install -m 644 release/Info.plist "$APPROOT/Contents/"



+ 2
- 9
release/tigervnc.iss.in View File

[Setup] [Setup]
#ifdef WIN64 #ifdef WIN64
ArchitecturesInstallIn64BitMode=x64 ArchitecturesInstallIn64BitMode=x64
AppName=TigerVNC 64-bit
AppVerName=TigerVNC 64-bit @VERSION@ (@BUILD@)
#else
AppName=TigerVNC
AppVerName=TigerVNC v@VERSION@ (@BUILD@)
#endif #endif
AppName=TigerVNC
AppVerName=TigerVNC @VERSION@ (@BUILD@)
AppVersion=@VERSION@ AppVersion=@VERSION@
AppPublisher=TigerVNC project AppPublisher=TigerVNC project
AppPublisherURL=https://tigervnc.org AppPublisherURL=https://tigervnc.org
DefaultDirName={pf}\TigerVNC DefaultDirName={pf}\TigerVNC
#ifdef WIN64
DefaultGroupName=TigerVNC 64-bit
#else
DefaultGroupName=TigerVNC DefaultGroupName=TigerVNC
#endif
LicenseFile=@CMAKE_SOURCE_DIR@\LICENCE.TXT LicenseFile=@CMAKE_SOURCE_DIR@\LICENCE.TXT


[Files] [Files]

+ 1
- 8
release/winvnc.iss.in View File

[Setup] [Setup]
#ifdef WIN64 #ifdef WIN64
ArchitecturesInstallIn64BitMode=x64 ArchitecturesInstallIn64BitMode=x64
AppName=TigerVNC Server 64-bit
AppVerName=TigerVNC Server 64-bit @VERSION@ (@BUILD@)
#else
#endif
AppName=TigerVNC Server AppName=TigerVNC Server
AppVerName=TigerVNC Server v@VERSION@ (@BUILD@) AppVerName=TigerVNC Server v@VERSION@ (@BUILD@)
#endif
AppVersion=@VERSION@ AppVersion=@VERSION@
AppPublisher=TigerVNC project AppPublisher=TigerVNC project
AppPublisherURL=https://tigervnc.org AppPublisherURL=https://tigervnc.org
DefaultDirName={pf}\TigerVNC Server DefaultDirName={pf}\TigerVNC Server
#ifdef WIN64
DefaultGroupName=TigerVNC Server 64-bit
#else
DefaultGroupName=TigerVNC Server DefaultGroupName=TigerVNC Server
#endif
LicenseFile=@CMAKE_SOURCE_DIR@\LICENCE.TXT LicenseFile=@CMAKE_SOURCE_DIR@\LICENCE.TXT


[Dirs] [Dirs]

+ 2
- 3
vncviewer/vncviewer.cxx View File

// encodings, so we need to make sure we get a fresh string every // encodings, so we need to make sure we get a fresh string every
// time. // time.
snprintf(buffer, sizeof(buffer), snprintf(buffer, sizeof(buffer),
_("TigerVNC Viewer %d-bit v%s\n"
_("TigerVNC Viewer v%s\n"
"Built on: %s\n" "Built on: %s\n"
"Copyright (C) 1999-%d TigerVNC Team and many others (see README.rst)\n" "Copyright (C) 1999-%d TigerVNC Team and many others (see README.rst)\n"
"See https://www.tigervnc.org for information on TigerVNC."), "See https://www.tigervnc.org for information on TigerVNC."),
(int)sizeof(size_t)*8, PACKAGE_VERSION,
BUILD_TIMESTAMP, 2022);
PACKAGE_VERSION, BUILD_TIMESTAMP, 2022);


return buffer; return buffer;
} }

+ 2
- 7
vncviewer/vncviewer.rc.in View File

BEGIN BEGIN
VALUE "Comments", "\0" VALUE "Comments", "\0"
VALUE "CompanyName", "TigerVNC Project\0" VALUE "CompanyName", "TigerVNC Project\0"
#ifdef WIN64
VALUE "FileDescription", "TigerVNC Client for Win64\0"
VALUE "ProductName", "TigerVNC Client for Win64\0"
#else
VALUE "FileDescription", "TigerVNC Client for Win32\0"
VALUE "ProductName", "TigerVNC Client for Win32\0"
#endif
VALUE "FileDescription", "TigerVNC Client\0"
VALUE "ProductName", "TigerVNC Client\0"
VALUE "FileVersion", "@RCVERSION@\0" VALUE "FileVersion", "@RCVERSION@\0"
VALUE "InternalName", "vncviewer\0" VALUE "InternalName", "vncviewer\0"
VALUE "LegalCopyright", "Copyright (C) 1999-2022 TigerVNC Team and many others (see README.rst)\0" VALUE "LegalCopyright", "Copyright (C) 1999-2022 TigerVNC Team and many others (see README.rst)\0"

+ 2
- 7
win/winvnc/winvnc.rc View File

BEGIN BEGIN
VALUE "Comments", "\0" VALUE "Comments", "\0"
VALUE "CompanyName", "TigerVNC Project\0" VALUE "CompanyName", "TigerVNC Project\0"
#ifdef WIN64
VALUE "FileDescription", "TigerVNC Server for Win64\0"
VALUE "ProductName", "TigerVNC Server for Win64\0"
#else
VALUE "FileDescription", "TigerVNC Server for Win32\0"
VALUE "ProductName", "TigerVNC Server for Win32\0"
#endif
VALUE "FileDescription", "TigerVNC Server\0"
VALUE "ProductName", "TigerVNC Server\0"
VALUE "FileVersion", __RCVERSIONSTR VALUE "FileVersion", __RCVERSIONSTR
VALUE "InternalName", "winvnc\0" VALUE "InternalName", "winvnc\0"
VALUE "LegalCopyright", "Copyright (C) 1999-2022 TigerVNC Team and many others (see README.rst)\0" VALUE "LegalCopyright", "Copyright (C) 1999-2022 TigerVNC Team and many others (see README.rst)\0"

+ 2
- 7
win/wm_hooks/wm_hooks.rc View File

BEGIN BEGIN
VALUE "Comments", "\0" VALUE "Comments", "\0"
VALUE "CompanyName", "TigerVNC Project\0" VALUE "CompanyName", "TigerVNC Project\0"
#ifdef WIN64
VALUE "FileDescription", "TigerVNC Server Hooking DLL for Win64\0"
VALUE "ProductName", "TigerVNC Server Hooking DLL for Win64\0"
#else
VALUE "FileDescription", "TigerVNC Server Hooking DLL for Win32\0"
VALUE "ProductName", "TigerVNC Server Hooking DLL for Win32\0"
#endif
VALUE "FileDescription", "TigerVNC Server Hooking DLL\0"
VALUE "ProductName", "TigerVNC Server Hooking DLL\0"
VALUE "FileVersion", __RCVERSIONSTR VALUE "FileVersion", __RCVERSIONSTR
VALUE "InternalName", "\0" VALUE "InternalName", "\0"
VALUE "LegalCopyright", "Copyright (C) 1999-2005 [many holders]\0" VALUE "LegalCopyright", "Copyright (C) 1999-2005 [many holders]\0"

Loading…
Cancel
Save