Rabbit Remote Control 0.0.33
Loading...
Searching...
No Matches
Compiling for Windows

Author: Kang Lin kl222.nosp@m.@126.nosp@m..com
Translator: Allan Nordhøy epost.nosp@m.@ano.nosp@m.thera.nosp@m.genc.nosp@m.y.no

Environment

Operating system

Windows 10, version 20H2 (19042.985)

QtCreator

Version: v14.0.2 It is recommended to use version v5.0.2 or later.
Prior versions don't have CMake support.

Tools

Compilation

See: Compile integration

Library dependencies

RabbitCommon

  • This library is placed in the same directory level as the project by default.
    git clone https://github.com/KangLin/RabbitRemoteControl.git
    git clone https://github.com/KangLin/RabbitCommon.git
    
  • If not, you must specify the CMake parameters or environment variable:
    git clone https://github.com/KangLin/RabbitRemoteControl.git
    ; Set environment variable
    set RabbitCommon_ROOT=[RabbitCommon install root]
    cd RabbitRemoteControl
    ; Or set CMake parameters
    cmake -DRabbitCommon_ROOT=[RabbitCommon installation path] ......
    

FreeRDP

  • Use vcpkg
    • Source-code location: https://github.com/microsoft/vcpkg/
      git clone https://github.com/microsoft/vcpkg.git
      cd vcpkg
      bootstrap-vcpkg.bat
      vcpkg install freerdp
      
    • Specify the CMake parameters: -DCMAKE_TOOLCHAIN_FILE=[vcpkg installation path]/scripts/buildsystems/vcpkg.cmake
    • With vcpk, the FreeRDP service is not a default feature, so you need to specify it manually.
  • Compile from source code
  • When FreeRDP is compiled from source, the CMake parameter needs to be specified to compile this project:
    • -DBUILD_FREERDP=ON
    • -DFreeRDP-Client_DIR=[freerdp installation path]/lib/cmake/FreeRDP-Client3
    • -DFreeRDP_DIR=[freerdp installation path]/lib/cmake/FreeRDP3
    • -DWinPR_DIR=[freerdp installation path]/lib/cmake/WinPR3
    • -DFreeRDP-Shadow_DIR=[freerdp installation path]/lib/cmake/FreeRDP-Shadow3
    • -DFreeRDP-Server_DIR=[freerdp installation path]/lib/cmake/FreeRDP-Server3

LibVNCServer

  • Compile from source code
    • Source-code location: https://github.com/LibVNC/libvncserver
      It is recommended to use the patches from: https://github.com/KangLin/libvncserver
      cd vcpkg
      vcpkg install zlib openssl libjpeg-turbo
      git clone https://github.com/KangLin/libvncserver.git
      cd libvncserver
      mkdir build
      cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CD%/install -DCMAKE_TOOLCHAIN_FILE=[vcpkg installation path]/scripts/buildsystems/vcpkg.cmake
      cmake --build . --config Release --target install
      
  • When LibVNCServer is compiled from source, the CMake parameter needs to be specified to compile this project:
    -DLibVNCServer_DIR=[LibVNCServer installation path]/lib/cmake/LibVNCServer
    

RabbitVNC

  • Compile from source code
    • Source-code location: https://github.com/KangLin/RabbitVNC
      cd vcpkg
      vcpkg install zlib openssl libjpeg-turbo pixman
      git clone https://github.com/KangLin/RabbitVNC.git
      cd RabbitVNC
      mkdir build
      cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CD%/install -DCMAKE_TOOLCHAIN_FILE=[vcpkg 安装目录]/scripts/buildsystems/vcpkg.cmake
      cmake --build . --config Release --target install
      
  • When RabbitVNC is compiled from source, the CMake parameter needs to be specified to compile this project:
    -DRabbitVNC_DIR=[RabbitVNC installation path]/lib/cmake/tigervnc
    

TigerVNC

  • Compile from source code

The official program does not support libraries.
See: https://github.com/TigerVNC/tigervnc/issues/1123
The Kanglin fork has support.
Source-code location: https://github.com/KangLin/tigervnc

cd vcpkg
vcpkg install zlib openssl pixman libjpeg-turbo
git clone https://github.com/KangLin/tigervnc.git
cd tigervnc
mkdir build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CD%/install -DCMAKE_TOOLCHAIN_FILE=[vcpkg installation path]/scripts/buildsystems/vcpkg.cmake
cmake --build . --config Release --target install
  • When TigerVNC is compiled from source, the CMake parameter needs to be specified to compile this project:
    -Dtigervnc_DIR=[TigerVNC installation path]/lib/cmake/tigervnc
    

libdatachannel

  • Use vcpkg
    • Source-code location: https://github.com/microsoft/vcpkg/
      cd vcpkg
      vcpkg install libdatachannel
      
    • Specify the CMake parameters: -DCMAKE_TOOLCHAIN_FILE=[vcpkg installation path]/scripts/buildsystems/vcpkg.cmake
  • Compile from source code
  • When libdatachannel is compiled from source, the CMake parameter needs to be specified to compile this project:
    -DLibDataChannel_DIR=[libdatachannel installation path]/lib/cmake/LibDataChannel
    

QXmpp

  • Compile from source code
    • Source-code location: https://github.com/qxmpp-project/qxmpp
      git clone https://github.com/qxmpp-project/qxmpp.git
      cd qxmpp
      mkdir build
      cd build
      cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CD%/install -DQt5_DIR=[Qt install path]/lib/cmake/Qt5
      cmake --build . --config Release --target install
      
  • When QXmpp is compiled from source, the CMake parameter needs to be specified to compile this project:
    -DQXmpp_DIR=[QXmpp installation path]/lib/cmake/qxmpp
    

QTermWidget (Not currently supported on Windows)

  • Compile from source code
  • When QTermWidget is compiled from source, the CMake parameter needs to be specified to compile this project:
    -Dqtermwidget5_DIR=[qtermwidget installation path]/lib/cmake/qtermwidget5
    

libssh

  • Use vcpkg
    • Source-code location: https://github.com/microsoft/vcpkg/
      cd vcpkg
      vcpkg install libssh
      
    • Specify the CMake parameters: -DCMAKE_TOOLCHAIN_FILE=[vcpkg installation path]/scripts/buildsystems/vcpkg.cmake
  • Compile from source code
  • When libssh is compiled from source, the CMake parameter needs to be specified to compile this project:
    -Dlibssh_DIR=[libssh installation path]/lib/cmake/libssh
    

QtService

  • Compile from source code
    • Source-code location: https://github.com/KangLin/qt-solutions/
      git clone https://github.com/KangLin/qt-solutions.git
      cd qt-solutions
      mkdir build
      cd build
      cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CD%/install
      cmake --build . --config Release --target install
      
  • When QtService is compiled from source, the CMake parameter needs to be specified to compile this project:
    -DQtService_DIR=[QtService installation path]/lib/cmake/QtService
    

PcapPlusPlus

  • Compile from source code
  • Use vcpkg
  • When PcapPlusPlus is compiled from source, the CMake parameter needs to be specified to compile this project:
    -DPcapPlusPlus_DIR=[PcapPlusPlus install path]/lib/cmake/pcapplusplus
    

Compile this project

  • Project location: https://github.com/KangLin/RabbitRemoteControl
  • Download the source code:
    git clone https://github.com/KangLin/RabbitRemoteControl.git
    
  • The CMake parameters:
    • QT_ROOT: Qt install root
    • Qt6_DIR or Qt5_DIR: Is same QT_ROOT
    • RabbitCommon_ROOT: RabbitCommon source-code location
    • BUILD_CLIENT: Compile client. the default is ON
    • BUILD_SERVICE: Compile service. the default dependency is whether there is a QtService
    • BUILD_PLUGINS: Compile plugins. the default is ON
    • BUILD_APP: Compile applaction. the default is ON
    • BUILD_DOCS: Build docmenets. the default is OFF
    • BUILD_SHARED_LIBS: Compile shared libraries. the default is ON
    • BUILD_FREERDP:If compile FreeRDP. the default is OFF
    • WinPR_DIR: [FreeRDP installation path]/lib/cmake/WinPR2
    • FreeRDP_DIR: [FreeRDP installation path]/lib/cmake/FreeRDP2
    • FreeRDP-Client_DIR: [FreeFRP installation path]/lib/cmake/FreeRDP-Client2
    • BUILD_RABBITVNC: Compile RabbitVNC. the default is ON
    • RabbitVNC_DIR: [RabbitVNC installation path]/lib/cmake/RabbitVNC
    • BUILD_TigerVNC: Compile TigerVNC. the default is ON
    • TigerVNC_DIR: [TigerVNC installation path]/lib/cmake/tigervnc
    • BUILD_LibVNCServer: Compile LibVNCServer. the default is ON
    • LibVNCServer_DIR: [libvncserver installation path]/lib/cmake/LibVNCServer
    • libdatachannel_DIR: [libdatachannel installation path]/lib/cmake/LibDataChannel
    • QXmpp_DIR=[QXmpp installation path]/lib/cmake/qxmpp
    • QTermWidget5_DIR: [QTermWidget installation path]/lib/cmake/qtermwidget5
    • libssh_DIR: [libssh installation path]/lib/cmake/libssh
    • QtService_DIR: [QtService installation path]/lib/cmake/QtService
  • If using vcpkg, please set the CMake parameters:
    • Because of using vcpkg manifest mode, so the depend libraries in vcpkg.json
    • CMAKE_TOOLCHAIN_FILE: [vcpkg installation path]/scripts/buildsystems/vcpkg.cmake
    • X_VCPKG_APPLOCAL_DEPS_INSTALL: ON #When installing, copy the dependent libraries to the installation directory
    • VCPKG_MANIFEST_FEATURES: This variable can be set to a list of features to activate when installing from your manifest. Note: All vcpkg-affecting variables must be defined before the first project() directive such as in a CMakePresets.json's "cacheVariables" map, via the command line, or set() statements. So don't place it in CMakeLists.txt of the project. See: https://learn.microsoft.com/vcpkg/users/buildsystems/cmake-integration#settings-reference
  • Compile
    • Compile from the command-line
        cd RabbitRemoteControl
        mkdir build
        cmake .. -DCMAKE_BUILD_TYPE=Release ^
            -DCMAKE_INSTALL_PREFIX=%CD%/install ^
            -DCMAKE_TOOLCHAIN_FILE=[vcpkg installation path]/scripts/buildsystems/vcpkg.cmake ^
            -DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON ^
            -DBUILD_FREERDP=ON [options libraries]
        cmake --build . --config Release --target install
      
        ; Package
        cmake --install . --config Release --component Runtime --strip
        cmake --install . --config Release --component Application --strip
        cmake --install . --config Release --component Plugin --strip
        cmake --install . --config Release --component DependLibraries --strip
        makensis Windows.nsi
      
    • Using an IDE (Qt Creator)
      • Set vcpkg: Menu→Edit→Preferences→Kits→Cmake Configuration:
        • Add CMAKE_TOOLCHAIN_FILE=[vcpkg installation path]/scripts/buildsystems/vcpkg.cmake
        • Set X_VCPKG_APPLOCAL_DEPS_INSTALL=ON
      • Open project: Menu→File→Open File or project, Select the CMakeLists.txt of the project
      • Configure: Click Project→"Build & Run" in the toolbar on the left to configure CMake parameters
        • If need install: select install in target
      • Compile and run: Click "Start Debugging of startup project" in the left toolbar, or press the shortcut key (F5)

Note: If the plugin does not load. It may be that the plugin's dependencies are not installed on the system. You can copy the dependency libraries into the application's bin directory.

See: Compile integration