Pierre Ossman
90e9db2dad
Don't link gcrypt for static GnuTLS
GnuTLS seems to have dropped grypt support ages ago, so let's not
confuse things by assuming it might be needed when linking GnuTLS
statically.
3 months ago
Pierre Ossman
b0319e3e09
Move where -nodefaultlibs is specified
The previous method isn't compatible with CMake's try_compile() as it
will respect CMAKE_EXE_LINKER_FLAGS, but not CMAKE_C_LINK_EXECUTABLE and
friends. This results in the default libraries being completely missing,
and the compile test failing.
11 months ago
Pierre Ossman
787987ef86
Handle REQUIRED in our CMake "find" modules
These are expected to abort if they fail to find the relevant software
and "REQUIRED" is specified.
1 year ago
Pierre Ossman
0043c557fc
Create .la files at the end of the cmake run
We might not have all the necessary information, e.g. all targets might
not exist yet, until we're done going through all CMakeLists.
1 year ago
Pierre Ossman
11ebff62d7
Bail on missing libraries
They may be crucial, so refuse to continue if this happens.
1 year ago
Pierre Ossman
e78ebbcb19
Fall back to dynamic libraries in .la files
This is what the linker does, so we should do the same for correct
behaviour.
1 year ago
Pierre Ossman
651e763338
Respect library search paths
Things might be in odd places, so make sure we respect where we're told
to look for libraries.
1 year ago
Pierre Ossman
b1943de686
Include other targets in .la files
We have internal dependencies that should be respected, as otherwise it
will be up to the user of the .la file to figure out the correct order
of the libraries.
1 year ago
Pierre Ossman
e41b082928
Handle alternative library suffixes
I think this only affects macOS at the moment where they also have .tbd
files for linking.
1 year ago
Pierre Ossman
6ff7f2e54b
Make sure frameworks are included in .la files
We don't really use the .la files for macOS at the moment, but let's try
to be prepared.
1 year ago
Pierre Ossman
f2a89fbec8
Remove unnecessary regexp \\
This serves no useful purpose as we have no reason to suspect there will
be a dangerous first character in these variables.
1 year ago
Pierre Ossman
d25c04808f
Fix static library check regexp
Not sure how the old one ever worked as it incorrectly just tried to
match last character and nothing else.
1 year ago
Pierre Ossman
533bf22864
Get target libraries from INTERFACE_LINK_LIBRARIES
<target>_LIB_DEPENDS is an internal variable that contains lots of other
weird stuff.
1 year ago
Pierre Ossman
c293cbdf9e
Use correct FATAL_ERROR CMake option
1 year ago
Pierre Ossman
ab8626a54d
Add fallback for finding gmp
pkg-config support was added very recently to gmp, so a lot of platforms
we want to support won't find gmp this way.
1 year ago
Pierre Ossman
7b32549083
Split gmp detection to separate module
It is a (weird) dependency of nettle, and not part of nettle itself. So
split it to a separate module for clarity.
1 year ago
pdlan
484ae7a2ea
Add support for RSA-AES security types
1 year ago
Pierre Ossman
101cef956d
Find FFMPEG using pkg-config
This is the standard method of finding it on Unix systems, so make sure
we use it. Still keep a fallback, though, for other systems, e.g.
Windows.
2 years ago
Pierre Ossman
1527f0b6db
Use pkg-config for pixman
This is the standard method of finding it on Unix systems, so make sure
we use it. Still keep a fallback, though, for other systems, e.g.
Windows.
2 years ago
Pierre Ossman
115d3f883e
Add target_link_directory() compat function
We need this function to deal with pkgconfig files properly, but
unfortunately it doesn't exist until CMake 3.13, and we need to support
CMake 3.10. So add a hacky compatibility function for older systems.
2 years ago
Alex Richardson
9d2b692afd
Allow building with -DBUILD_VIEWER=OFF
Without this change I get CMake errors due to use of ${FLTK_INCLUDE_DIR}
and references to the non-existent vncviewer target.
2 years ago
Pierre Ossman
eb13d1be68
Fix bad library references for some static deps
3 years ago
Pierre Ossman
d484001e97
Add comment why unistring is linked dynamically
3 years ago
Danny Park
df3171ea79
Update build system so it will compile on Windows 10.
With this commit, TigerVNC will compile for Windows using MSYS2, MinGW-w64 and Inno Setup 6. The resulting binaries have some dll dependencies (even with BUILD_STATIC). The required dll dependencies are not included in the installer.
Unfortunately, the latest version of MSYS2 and MinGW-w64 do not produce a working executable for Windows 7.
4 years ago
Pierre Ossman
0b1d57be37
Test packaging on Travis
Don't just build things, also test the various packaging.
3 years ago
Aaron Sowry
95ad018961
Implement touch gesture handling on Unix
Allows the user to perform certain important mouse operations using
touch gestures instead.
5 years ago
Aaron Sowry
c79a05dc15
Implement X Input pointer handling for Unix
Switch from using Core events to using X Input events for pointer
devices in order to differentiate between mouse events and touch events.
Because FLTK doesn't understand X Input 2, we intercept these events and
translate them to core events where possible.
5 years ago
Pierre Ossman
ecb016fe3f
Switch region code to pixman
This is the current upstream so let's make use of it to get the latest
in features and fixes.
4 years ago
Pierre Ossman
849bd56728
Also link in math library in static build
It's included by default in dynamic builds so we need to make sure it
isn't lost when switching to static.
4 years ago
Pierre Ossman
e4f253e1d1
Use standard install dir variable names
This makes our builds directly compatible with most distributions
without packagers/users having to specify extra flags.
5 years ago
Pierre Ossman
7996059455
Fix C linking when doing static builds
5 years ago
Pierre Ossman
57da16bbcf
Include Carbon when statically linking gettext on macOS
As gettext needs some stuff from Carbon and we don't want to rely on it
being pulled in as a side effect.
4 years ago
Pierre Ossman
5ef3a70d1d
Fix link order of nettle and hogweed
Hogweed needs nettle, not the other way around. So make sure they
are specified in the correct order for the static link to succeed.
4 years ago
Pierre Ossman
18ba39cb71
Include libuuid in static builds
Modern fontconfig needs it, so make sure it is included.
5 years ago
Peter Åstrand (astrand)
97eeefd771
Link zlib statically on all platforms
The API and ABI isn't as stable as we need, so it isn't safe to
link it dynamically even on Linux.
5 years ago
Peter Åstrand (astrand)
242c5b2c8a
Add RandR support for x0vncserver
Change Xserver screen through libXrandr. For complex configurations,
all outputs must have corresponding size modes. As a special case, if
the client requests a single screen with an odd size (for example when
adjusting the size of a non-fullscreen vncviewer), find a smaller
suitable mode, and reduce the framebuffer size as well.
6 years ago
Peter Åstrand (astrand)
6011f96cdc
Rename README.txt to README.rst and convert to reStructuredText
6 years ago
Pierre Ossman
2699967aad
Improve test if library is a CMake target
Newer CMake complains when you try to get the property of something
that isn't a target so use the specific if operator instead.
6 years ago
Pierre Ossman
c27f5da1b7
Avoid getting LOCATION property
It's not supported in newer CMake, so try to deduce the library
filename from the target name.
6 years ago
Pierre Ossman
82e753d4e1
Add libpng as a dependency for freetype for static builds
Newer versions of Freetype requires libpng as well.
6 years ago
klemens
0536d0975b
spelling fixes
7 years ago
Pierre Ossman
4495b72f99
Update .la files on each build
This makes sure other build systems trigger properly, e.g. when
building Xvnc.
7 years ago
Pierre Ossman
b74728f9d6
Add option to enable thread sanitizer
8 years ago
DRC
2a2e2c3611
Allow static linking against only the GCC libs
8 years ago
Pierre Ossman
86640e8f91
Add address sanitizer switch
Useful for debugging memory leaks and access violations. It is
not available on Windows though, and there is some problem compiling
ObjectiveC++ with it turned on.
8 years ago
Pierre Ossman
de2df7e600
Set libdir in generated .la files
This is needed in order to get libtool to treat them as normal
libraries and not "convenience libraries". The latter are linked
with --whole-archive, which pulls a lot of unnecessary stuff into
Xvnc and libvnc.so.
9 years ago
Pierre Ossman
95763a63e8
GnuTLS needs socket libraries so include them in the static link
9 years ago
Peter Åstrand (astrand)
c4bc5a8f0e
Build fixes for modern versions of binutils.
Need to explicitly list DSOs.
9 years ago
Pierre Ossman
cc8c6a296f
Drop bundled zlib
We're not doing a sufficient job of keeping this updated so list
it as an external requirement instead.
9 years ago
Brian P. Hinz
44759765fc
Static build fix - only attempt to link against libtasn1 if it's present
GnuTLS may be compiled without external libtasn1, so we shouldn't try
to link against it unless it's actually present.
9 years ago