These are issues I encountered when attempting to build Linux, OS X, and
Windows builds from the code in trunk:
(1) BUILDING.txt needs to be modified to indicate that
fltk-xfixes-xcursor-cmake.2.patch should be applied with patch -p0, not -p1.
(2) It would be much more convenient if BUILDING.txt contained full
links to the patches, rather than links to the page from which they are
downloaded. That way, one could use wget to download them, which is a
more streamlined workflow, since one is building from the command line.
(3) CMakeLists.txt in the FLTK build system needs to be patched as follows:
--- CMakeLists.txt (revision 9619)
+++ CMakeLists.txt (working copy)
@@ -167,6 +167,9 @@
endif(LIB_png)
CHECK_FUNCTION_EXISTS(png_get_valid HAVE_PNG_GET_VALID)
CHECK_FUNCTION_EXISTS(png_set_tRNS_to_alpha HAVE_PNG_SET_TRNS_TO_ALPHA)
+if(LIB_png)
+ set(CMAKE_REQUIRED_LIBRARIES "")
+endif(LIB_png)
CHECK_FUNCTION_EXISTS(scandir HAVE_SCANDIR)
CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
Otherwise, it will try to add -lpng to all of the subsequent function
checks, which causes them to fail on some machines (including mine.)
(4) Fluid build fails on Mac using CMake unless CMakeLists.txt in the
FLTK build system is patched as follows:
--- CMakeLists.txt (revision 9619)
+++ CMakeLists.txt (working copy)
@@ -51,7 +51,7 @@
set(HAVE_STRTOLL 1)
set(HAVE_STRCASECMP 1)
set(HAVE_DIRENT_H 1)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework
Cocoa -framework Carbon")
endif(APPLE)
NOTE: this is the same thing configure.in is doing (linking both the
Cocoa and Carbon frameworks, because Fl_cocoa.mm depends on some Carbon
functions.)
(5) When building FLTK, one needs to manually specify
-DCMAKE_BUILD_TYPE=Release if one wants optimized code. Either the FLTK
CMakeLists.txt needs to be modified to make CMAKE_BUILD_TYPE=Release the
default, or it needs to be documented in TigerVNC's BUILDING.txt that
adding this variable is necessary to produce optimized code.
(6) The TigerVNC build will fail unless I patch TigerVNC's
CMakeLists.txt as follows:
--- CMakeLists.txt (revision 5021)
+++ CMakeLists.txt (working copy)
@@ -265,6 +265,7 @@
if(X11_Xcursor_FOUND)
set(FLTK_LIBRARIES ${FLTK_LIBRARIES} ${X11_Xcursor_LIB})
endif()
+ set(FLTK_LIBRARIES ${FLTK_LIBRARIES} png)
endif()
This goes away when building FLTK with -DOPTION_USE_SYSTEM_LIBPNG=0, but
distribution vendors will run into this problem, since they'll probably
want to use the system libpng. Since the patch above does no harm when
using FLTK's internal PNG library, I would suggest going ahead and
applying it to TigerVNC.
(7) Building FLTK using MinGW is problematic because of the dependency
on the libgcc and libstdc++ DLL's. These dependencies are automatically
taken care of in the TigerVNC build system, but the FLTK build system
doesn't have that same code. It's particularly a problem with MinGW64,
since those DLLs aren't in the PATH, and thus the build will actually
fail because it's trying to run a test program that it just built. It's
problematic in general because, if FLTK depends on libgcc and libstdc++,
so will the TigerVNC executable, which makes packaging it difficult.
This was one reason why it was advantageous to build FLTK in the
TigerVNC tree (it took on the build properties of the rest of the
TigerVNC code.) The only way I was able to hack around the issue was by
copying the BUILD_STATIC code from the TigerVNC CMakeLists.txt file into
the FLTK CMakeLists.txt file. Yuck.
(8) You are using ImageMagick to generate tigervnc.png. Of course
ImageMagick is not available on Windows, so the Windows build fails. I
mean, seriously, check the PNG files into SVN. They're all of, what, 2
kilobytes?!
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122912
_______________________________________________
Tigervnc-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel