@@ -58,6 +58,8 @@ option(WITH_24BPP "Allow 24 bpp" ON)
58
58
option (WITH_IPv6 "Enable IPv6 Support" ON )
59
59
option (WITH_WEBSOCKETS "Build with websockets support" ON )
60
60
option (WITH_SASL "Build with SASL support" ON )
61
+ option (WITH_EXAMPLES "Build examples" ON )
62
+ option (WITH_TESTS "Build tests" ON )
61
63
62
64
63
65
@@ -210,6 +212,7 @@ check_function_exists(strerror LIBVNCSERVER_HAVE_STRERROR)
210
212
check_function_exists (strstr LIBVNCSERVER_HAVE_STRSTR )
211
213
212
214
check_symbol_exists (htobe64 "endian.h" LIBVNCSERVER_HAVE_HTOBE64 )
215
+ check_symbol_exists (htobe64 "sys/endian.h" LIBVNCSERVER_HAVE_HTOBE64 )
213
216
check_symbol_exists (OSSwapHostToBigInt64 "libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64 )
214
217
215
218
if (WITH_THREADS AND Threads_FOUND )
@@ -604,26 +607,28 @@ if(FFMPEG_FOUND)
604
607
)
605
608
endif (FFMPEG_FOUND )
606
609
607
-
608
- foreach (e ${LIBVNCSERVER_EXAMPLES} )
609
- add_executable (examples_${e} ${LIBVNCSRVEXAMPLE_DIR} /${e}.c )
610
- set_target_properties (examples_${e} PROPERTIES OUTPUT_NAME ${e} )
611
- set_target_properties (examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /examples )
612
- target_link_libraries (examples_${e} vncserver ${CMAKE_THREAD_LIBS_INIT} ${CARBON_LIBRARY} ${IOKIT_LIBRARY} ${IOSURFACE_LIBRARY} )
613
- endforeach (e ${LIBVNCSERVER_EXAMPLES} )
614
-
615
- foreach (e ${LIBVNCCLIENT_EXAMPLES} )
616
- add_executable (client_examples_${e} ${LIBVNCCLIEXAMPLE_DIR} /${e}.c ${LIBVNCCLIEXAMPLE_DIR} /${${e}_EXTRA_SOURCES} )
617
- set_target_properties (client_examples_${e} PROPERTIES OUTPUT_NAME ${e} )
618
- set_target_properties (client_examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /client_examples )
619
- target_link_libraries (client_examples_${e} vncclient ${CMAKE_THREAD_LIBS_INIT} ${SDL2_LIBRARY} ${GTK2_LIBRARIES} ${FFMPEG_LIBRARIES} )
620
- endforeach (e ${LIBVNCCLIENT_EXAMPLES} )
621
-
610
+ if ( WITH_EXAMPLES )
611
+ foreach (e ${LIBVNCSERVER_EXAMPLES} )
612
+ add_executable (examples_${e} ${LIBVNCSRVEXAMPLE_DIR} /${e}.c )
613
+ set_target_properties (examples_${e} PROPERTIES OUTPUT_NAME ${e} )
614
+ set_target_properties (examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /examples )
615
+ target_link_libraries (examples_${e} vncserver ${CMAKE_THREAD_LIBS_INIT} ${CARBON_LIBRARY} ${IOKIT_LIBRARY} ${IOSURFACE_LIBRARY} )
616
+ endforeach (e ${LIBVNCSERVER_EXAMPLES} )
617
+
618
+ foreach (e ${LIBVNCCLIENT_EXAMPLES} )
619
+ add_executable (client_examples_${e} ${LIBVNCCLIEXAMPLE_DIR} /${e}.c ${LIBVNCCLIEXAMPLE_DIR} /${${e}_EXTRA_SOURCES} )
620
+ set_target_properties (client_examples_${e} PROPERTIES OUTPUT_NAME ${e} )
621
+ set_target_properties (client_examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /client_examples )
622
+ target_link_libraries (client_examples_${e} vncclient ${CMAKE_THREAD_LIBS_INIT} ${SDL2_LIBRARY} ${GTK2_LIBRARIES} ${FFMPEG_LIBRARIES} )
623
+ endforeach (e ${LIBVNCCLIENT_EXAMPLES} )
624
+ endif ( WITH_EXAMPLES )
622
625
623
626
#
624
627
# them tests
625
628
#
626
629
630
+ if (WITH_TESTS )
631
+
627
632
if (UNIX )
628
633
set (ADDITIONAL_TEST_LIBS m )
629
634
endif (UNIX )
@@ -695,6 +700,8 @@ if(LIBVNCSERVER_WITH_WEBSOCKETS)
695
700
add_test (NAME wstest COMMAND test_wstest )
696
701
endif (LIBVNCSERVER_WITH_WEBSOCKETS )
697
702
703
+ endif (WITH_TESTS )
704
+
698
705
#
699
706
# this gets the libraries needed by TARGET in "-libx -liby ..." form
700
707
#
@@ -724,22 +731,65 @@ get_link_libraries(PRIVATE_LIBS vncclient)
724
731
configure_file (${CMAKE_CURRENT_SOURCE_DIR} /libvncclient.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR} /libvncclient.pc @ONLY )
725
732
726
733
if (LIBVNCSERVER_INSTALL )
727
- install (TARGETS vncserver DESTINATION ${CMAKE_INSTALL_LIBDIR} )
728
- install (TARGETS vncclient DESTINATION ${CMAKE_INSTALL_LIBDIR} )
729
- install (FILES
730
- rfb/keysym.h
731
- rfb/threading.h
732
- rfb/rfb.h
733
- rfb/rfbclient.h
734
- ${CMAKE_CURRENT_BINARY_DIR} /rfb/rfbconfig.h
735
- rfb/rfbproto.h
736
- rfb/rfbregion.h
737
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /rfb
738
- )
739
-
740
- install (FILES
741
- ${CMAKE_CURRENT_BINARY_DIR} /libvncserver.pc
742
- ${CMAKE_CURRENT_BINARY_DIR} /libvncclient.pc
743
- DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig
744
- )
734
+ set (INSTALL_HEADER_FILES
735
+ rfb/keysym.h
736
+ rfb/threading.h
737
+ rfb/rfb.h
738
+ rfb/rfbclient.h
739
+ ${CMAKE_CURRENT_BINARY_DIR} /rfb/rfbconfig.h
740
+ rfb/rfbproto.h
741
+ rfb/rfbregion.h
742
+ )
743
+
744
+ set_property (TARGET vncclient PROPERTY PUBLIC_HEADER ${INSTALL_HEADER_FILES} )
745
+ set_property (TARGET vncserver PROPERTY PUBLIC_HEADER ${INSTALL_HEADER_FILES} )
746
+ if (WIN32 )
747
+ INSTALL (TARGETS vncclient vncserver
748
+ EXPORT LibVNCServerTargets
749
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR} "
750
+ LIBRARY DESTINATION "${CMAKE_INSTALL_BINDIR} "
751
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR} "
752
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /rfb
753
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
754
+ )
755
+ else ()
756
+ INSTALL (TARGETS vncclient vncserver
757
+ EXPORT LibVNCServerTargets
758
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR} "
759
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR} "
760
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR} "
761
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /rfb
762
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
763
+ )
764
+ endif ()
765
+
766
+ # Install cmake configure files
767
+ install (EXPORT LibVNCServerTargets
768
+ NAMESPACE
769
+ "LibVNCServer::"
770
+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/LibVNCServer"
771
+ )
772
+
773
+ include (CMakePackageConfigHelpers )
774
+ configure_package_config_file (
775
+ ${PROJECT_SOURCE_DIR} /cmake/Modules/LibVNCServerConfig.cmake.in
776
+ ${CMAKE_BINARY_DIR} /LibVNCServerConfig.cmake
777
+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/LibVNCServer"
778
+ )
779
+ # Install cmake version configure file
780
+ write_basic_package_version_file (
781
+ "${CMAKE_BINARY_DIR} /LibVNCServerConfigVersion.cmake"
782
+ VERSION ${PARA_VERSION}
783
+ COMPATIBILITY AnyNewerVersion )
784
+ install (FILES
785
+ "${CMAKE_BINARY_DIR} /LibVNCServerConfigVersion.cmake"
786
+ "${CMAKE_BINARY_DIR} /LibVNCServerConfig.cmake"
787
+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/LibVNCServer" )
788
+
789
+
790
+ install (FILES
791
+ ${CMAKE_CURRENT_BINARY_DIR} /libvncserver.pc
792
+ ${CMAKE_CURRENT_BINARY_DIR} /libvncclient.pc
793
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig
794
+ )
745
795
endif ()
0 commit comments