diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 4eca5fb8c..da0d6745b 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -205,10 +205,6 @@ jobs: mac-qt-version: 6.7.2 like: ${{ matrix.target.like }} - - name: Setup Python - if: ${{runner.os != 'Linux' }} - run: python ./scripts/setup_venv.py - - name: Get version uses: ./.github/actions/get-version diff --git a/CMakeLists.txt b/CMakeLists.txt index f6a0ae879..17b7eeaed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -110,14 +110,10 @@ if(APPLE) endif() # Set Output Folders -# TODO Remove when not using post_config macros set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib") -set(BIN_TEMP_DIR ${PROJECT_BINARY_DIR}/temp/bin) -include(cmake/Build.cmake) include(cmake/Libraries.cmake) - include(GNUInstallDirs) configure_libs() @@ -146,4 +142,3 @@ option(BUILD_INSTALLER "Build installer" ON) if(BUILD_INSTALLER) add_subdirectory(deploy) endif() -post_config_all() diff --git a/cmake/Build.cmake b/cmake/Build.cmake deleted file mode 100644 index 358e6e008..000000000 --- a/cmake/Build.cmake +++ /dev/null @@ -1,72 +0,0 @@ -# Deskflow -- mouse and keyboard sharing utility -# Copyright (C) 2024 Symless Ltd. -# -# This package is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# found in the file LICENSE that should have accompanied this file. -# -# This package is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -macro(post_config) - - # Build to a temp bin dir on Windows and then copy to the final bin dir - # (ignore copy fail). It is neccesary to do this. Since the binary may already - # be running and you can't write to a running binary (on Windows). It's common - # to use Deskflow to develop Deskflow (i.e. eating your own dog food immediately - # making it). - if(WIN32) - - if(NOT target) - message(FATAL_ERROR "target not set") - endif() - - set_target_properties(${target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY - ${BIN_TEMP_DIR}) - endif() - -endmacro() - -macro(post_config_all) - - if(WIN32) - # Always try to copy the files to the bin directory after every build and deliberatly ignore - # copy errors, usually the error is because a running process has locked the file. - # - # It is useful to copy every time because the copy may have failed last time due to the file - # being in use, and we'll usually want to try again (after killing the process). - # - # Yes, this looks like a ridiculous thing to do, but it really is necessary to - # use a Python script to copy files on Windows. Why? Two reasons: - # - # 1. Windows file locks (on running processes) creates a very painful development - # experience; you can't overwrite the binary you're running it. - # Why not just stop the process? Windows services are an abject PITA to manage, - # and we don't always care about overwriting all binaries. - # - # 2. The Windows copy command is limited and gives vague/misleading errors. - # The CMake copy command also has similar shortfalls. - # - # Patches welcome! :) - add_custom_target( - run_post_build ALL - COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/scripts/fancy_copy.py - ${BIN_TEMP_DIR} ${PROJECT_BINARY_DIR}/bin --ignore-errors - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - VERBATIM - COMMENT "Copying files to bin dir") - - add_dependencies( - run_post_build - deskflow - deskflow-client - deskflow-server - deskflow-daemon) - endif() - -endmacro() diff --git a/src/cmd/deskflowc/CMakeLists.txt b/src/cmd/deskflowc/CMakeLists.txt index a89b6f686..b2a2e5252 100644 --- a/src/cmd/deskflowc/CMakeLists.txt +++ b/src/cmd/deskflowc/CMakeLists.txt @@ -80,4 +80,3 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") ) endif() -post_config() diff --git a/src/cmd/deskflowd/CMakeLists.txt b/src/cmd/deskflowd/CMakeLists.txt index 52c93f10d..9e36c589a 100644 --- a/src/cmd/deskflowd/CMakeLists.txt +++ b/src/cmd/deskflowd/CMakeLists.txt @@ -49,6 +49,4 @@ if(WIN32) ".*system32.*" RUNTIME DESTINATION . ) - - post_config() endif() diff --git a/src/cmd/deskflows/CMakeLists.txt b/src/cmd/deskflows/CMakeLists.txt index 390016879..8d0efd16e 100644 --- a/src/cmd/deskflows/CMakeLists.txt +++ b/src/cmd/deskflows/CMakeLists.txt @@ -79,5 +79,3 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") RUNTIME DESTINATION . ) endif() - -post_config() diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 1e90c99e9..6a57b1529 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -111,5 +111,3 @@ elseif(APPLE) else() install(TARGETS ${target} DESTINATION bin) endif() - -post_config()