build: remove post_config macros
This commit is contained in:
parent
802cfaa279
commit
cd0e98a480
7 changed files with 0 additions and 88 deletions
4
.github/workflows/continuous-integration.yml
vendored
4
.github/workflows/continuous-integration.yml
vendored
|
|
@ -205,10 +205,6 @@ jobs:
|
||||||
mac-qt-version: 6.7.2
|
mac-qt-version: 6.7.2
|
||||||
like: ${{ matrix.target.like }}
|
like: ${{ matrix.target.like }}
|
||||||
|
|
||||||
- name: Setup Python
|
|
||||||
if: ${{runner.os != 'Linux' }}
|
|
||||||
run: python ./scripts/setup_venv.py
|
|
||||||
|
|
||||||
- name: Get version
|
- name: Get version
|
||||||
uses: ./.github/actions/get-version
|
uses: ./.github/actions/get-version
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -110,14 +110,10 @@ if(APPLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set Output Folders
|
# Set Output Folders
|
||||||
# TODO Remove when not using post_config macros
|
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
|
||||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
|
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(cmake/Libraries.cmake)
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
configure_libs()
|
configure_libs()
|
||||||
|
|
@ -146,4 +142,3 @@ option(BUILD_INSTALLER "Build installer" ON)
|
||||||
if(BUILD_INSTALLER)
|
if(BUILD_INSTALLER)
|
||||||
add_subdirectory(deploy)
|
add_subdirectory(deploy)
|
||||||
endif()
|
endif()
|
||||||
post_config_all()
|
|
||||||
|
|
|
||||||
|
|
@ -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 <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
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()
|
|
||||||
|
|
@ -80,4 +80,3 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
post_config()
|
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,4 @@ if(WIN32)
|
||||||
".*system32.*"
|
".*system32.*"
|
||||||
RUNTIME DESTINATION .
|
RUNTIME DESTINATION .
|
||||||
)
|
)
|
||||||
|
|
||||||
post_config()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -79,5 +79,3 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||||
RUNTIME DESTINATION .
|
RUNTIME DESTINATION .
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
post_config()
|
|
||||||
|
|
|
||||||
|
|
@ -111,5 +111,3 @@ elseif(APPLE)
|
||||||
else()
|
else()
|
||||||
install(TARGETS ${target} DESTINATION bin)
|
install(TARGETS ${target} DESTINATION bin)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
post_config()
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue