Add BUILD_SERVER similar to BUILD_VIEWER Add a BUILD_SERVER option similar to BUILD_VIEWER. When BUILD_SERVER is not active, we do not require pam, so also disable everything that needs pam. This allows building the viewer on a machine where pam is not installed. See https://bugs.gentoo.org/852830 Set ENABLE_WAYLAND to 0 if BUILD_SERVER is not active. Do not define _FORTIFY_SOURCE, it is already defined in Gentoo. --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,7 +76,6 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") # Tell the compiler to be stringent -add_compile_definitions(_FORTIFY_SOURCE=2) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wformat=2 -Wvla") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wformat=2 -Wvla") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wzero-as-null-pointer-constant") @@ -260,6 +259,7 @@ if(BUILD_JAVA) add_subdirectory(java) endif() +trioption(BUILD_SERVER "Build TigerVNC server") trioption(BUILD_VIEWER "Build TigerVNC viewer") if(BUILD_VIEWER) # Check for FLTK @@ -341,7 +341,7 @@ if (ENABLE_NETTLE) endif() # Check for PAM library -if(UNIX AND NOT APPLE) +if(BUILD_SERVER AND UNIX AND NOT APPLE) find_package(PAM REQUIRED) endif() @@ -391,21 +391,9 @@ if(UNIX AND NOT APPLE) endif() # check for libraries needed for wayland support -if(UNIX AND NOT APPLE) +if(BUILD_SERVER AND UNIX AND NOT APPLE) trioption(ENABLE_WAYLAND "Enable wayland support") - if(ENABLE_WAYLAND STREQUAL "AUTO") - find_package(GLib) - find_package(Gio) - find_package(Gobject) - - # Portals specific - find_package(PipeWire) - find_package(Uuid) - - # wlroots specific - find_package(WaylandClient) - find_package(Xkbcommon) - else() + if(ENABLE_WAYLAND) find_package(GLib REQUIRED) find_package(Gio REQUIRED) find_package(Gobject REQUIRED) @@ -418,11 +406,8 @@ if(UNIX AND NOT APPLE) find_package(WaylandClient REQUIRED) find_package(Xkbcommon REQUIRED) endif() - if(NOT GLIB_FOUND OR NOT GIO_FOUND OR NOT GOBJECT_FOUND OR NOT PIPEWIRE_FOUND - OR NOT UUID_FOUND OR NOT WAYLANDCLIENT_FOUND OR NOT XKBCOMMON_FOUND) - set(ENABLE_WAYLAND 0) - message(WARNING "GLib, Gio, Gobject, PipeWire, Uuid, WaylandClient or Xkbcommon NOT found. w0vncserver disabled.") - endif() +else() + set(ENABLE_WAYLAND 0) endif() find_package(GTest) --- a/common/rfb/CMakeLists.txt +++ b/common/rfb/CMakeLists.txt @@ -76,7 +76,7 @@ if(WIN32) target_sources(rfb PRIVATE WinPasswdValidator.cxx) endif(WIN32) -if(UNIX AND NOT APPLE) +if(BUILD_SERVER AND UNIX AND NOT APPLE) target_sources(rfb PRIVATE UnixPasswordValidator.cxx) target_include_directories(rfb SYSTEM PRIVATE ${PAM_INCLUDE_DIRS}) target_link_libraries(rfb ${PAM_LIBRARIES}) --- a/tests/perf/CMakeLists.txt +++ b/tests/perf/CMakeLists.txt @@ -8,8 +8,10 @@ target_link_libraries(convperf test_util rfb) add_executable(decperf decperf.cxx) target_link_libraries(decperf test_util rdr rfb) -add_executable(encperf encperf.cxx) -target_link_libraries(encperf test_util core rdr rfb) +if(BUILD_SERVER) + add_executable(encperf encperf.cxx) + target_link_libraries(encperf test_util core rdr rfb) +endif() if (BUILD_VIEWER) add_executable(fbperf --- a/unix/CMakeLists.txt +++ b/unix/CMakeLists.txt @@ -4,10 +4,12 @@ endif() add_subdirectory(tx) add_subdirectory(common) -add_subdirectory(vncconfig) -add_subdirectory(vncpasswd) -add_subdirectory(vncserver) -add_subdirectory(x0vncserver) +if(BUILD_SERVER) + add_subdirectory(vncconfig) + add_subdirectory(vncpasswd) + add_subdirectory(vncserver) + add_subdirectory(x0vncserver) +endif() if (ENABLE_WAYLAND) add_subdirectory(w0vncserver)