Moved distributed files to build/distributed and stop placing the binary in build/bin (have binned that directory).
Also updated installation rules
This commit is contained in:
@@ -9,8 +9,7 @@ set(CMAKE_CXX_STANDARD 20)
|
||||
set(ENABLE_SANITIZERS off)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(AUTOGEN_BUILD_DIR ../build/)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/build/bin")
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
||||
|
||||
find_package(yaml-cpp 0.7.0 REQUIRED)
|
||||
find_package(Qt6Core REQUIRED)
|
||||
@@ -22,15 +21,9 @@ find_package(Qt6UiTools REQUIRED)
|
||||
find_package(Qt6SvgWidgets REQUIRED)
|
||||
find_package(Qt6Network REQUIRED)
|
||||
|
||||
# Bloom is distributed with some third-party dependencies (in the form of shared objects). These dependencies are
|
||||
# distributed with Bloom for various reasons (licensing, availability in some package managers, etc).
|
||||
#
|
||||
# The shared objects are located in bin/lib (relative to Bloom's installation directory). For this reason, we instruct
|
||||
# the dynamic linker to look for any of Bloom's shared object dependencies in that location first. We do this by
|
||||
# including '$ORIGIN/lib' in the RPATH of Bloom's binary executable.
|
||||
set(CMAKE_SKIP_BUILD_RPATH false)
|
||||
set(CMAKE_BUILD_RPATH_USE_ORIGIN true)
|
||||
set(CMAKE_INSTALL_RPATH "\$ORIGIN/lib:/usr/local/lib")
|
||||
set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib:/usr/local/lib")
|
||||
set(CMAKE_BUILD_RPATH ${CMAKE_INSTALL_RPATH})
|
||||
|
||||
add_compile_definitions(BLOOM_VERSION="${CMAKE_PROJECT_VERSION}")
|
||||
@@ -172,25 +165,7 @@ add_custom_command(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/build/scripts/Avr8TargetDescriptionFiles.php
|
||||
COMMAND echo 'Processing AVR target description files.'
|
||||
COMMAND
|
||||
php ${CMAKE_CURRENT_SOURCE_DIR}/build/scripts/Avr8TargetDescriptionFiles.php
|
||||
)
|
||||
|
||||
# Copy resources/fonts into build/resources/Fonts
|
||||
add_custom_command(
|
||||
TARGET Bloom
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/resources/fonts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/build/resources/Fonts
|
||||
)
|
||||
|
||||
# Copy resources/udevrules/99-bloom.rules to build/resources/UDevRules/99-bloom.rules
|
||||
add_custom_command(
|
||||
TARGET Bloom
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/resources/udevrules/99-bloom.rules
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/build/resources/UDevRules/99-bloom.rules
|
||||
php ${CMAKE_CURRENT_SOURCE_DIR}/build/scripts/Avr8TargetDescriptionFiles.php ${CMAKE_BINARY_DIR}
|
||||
)
|
||||
|
||||
include(./cmake/Installing.cmake)
|
||||
|
||||
@@ -9,11 +9,17 @@
|
||||
|
||||
namespace Bloom\BuildScripts;
|
||||
|
||||
$buildPath = $argv[1] ?? null;
|
||||
if (empty($buildPath)) {
|
||||
print "Missing build path. Aborting\n";
|
||||
die;
|
||||
}
|
||||
|
||||
require_once __DIR__ . "/TargetDescriptionFiles/Factory.php";
|
||||
|
||||
CONST AVR_TDF_DEST_FILE_PATH = __DIR__ . "/../resources/TargetDescriptionFiles/AVR";
|
||||
CONST AVR_TDF_DEST_RELATIVE_FILE_PATH = "../resources/TargetDescriptionFiles/AVR";
|
||||
CONST AVR_TDF_MAPPING_FILE_PATH = AVR_TDF_DEST_FILE_PATH . "/Mapping.json";
|
||||
define("AVR_TDF_DEST_FILE_PATH", $buildPath . "/resources/TargetDescriptionFiles/AVR");
|
||||
define("AVR_TDF_DEST_RELATIVE_FILE_PATH", "../resources/TargetDescriptionFiles/AVR");
|
||||
define("AVR_TDF_MAPPING_FILE_PATH", AVR_TDF_DEST_FILE_PATH . "/Mapping.json");
|
||||
|
||||
// Empty destination directory
|
||||
if (file_exists(AVR_TDF_DEST_FILE_PATH)) {
|
||||
@@ -43,19 +49,19 @@ foreach ($avrTdfs as $avrTdf) {
|
||||
$id = strtolower($strippedTargetName);
|
||||
|
||||
if (in_array($id, $processedTargetIds)) {
|
||||
print "\033[31m" . PHP_EOL;
|
||||
print "FATAL ERROR: duplicate AVR8 target ID detected: " . $id . PHP_EOL . PHP_EOL
|
||||
print "\033[31m" . "\n";
|
||||
print "FATAL ERROR: duplicate AVR8 target ID detected: " . $id . "\n\n"
|
||||
. "TDF Path: " . realpath($avrTdf->filePath);
|
||||
print "\033[0m" . PHP_EOL;
|
||||
print "\033[0m" . "\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!empty(($validationFailures = $avrTdf->validate()))) {
|
||||
print "\033[31m" . PHP_EOL;
|
||||
print "FATAL ERROR: AVR8 TDF failed validation - failure reasons:" . PHP_EOL
|
||||
. implode(PHP_EOL, $validationFailures) . PHP_EOL . PHP_EOL . "TDF Path: "
|
||||
print "\033[31m" . "\n";
|
||||
print "FATAL ERROR: AVR8 TDF failed validation - failure reasons:" . "\n"
|
||||
. implode("\n", $validationFailures) . "\n\n" . "TDF Path: "
|
||||
. realpath($avrTdf->filePath);
|
||||
print "\033[0m" . PHP_EOL;
|
||||
print "\033[0m" . "\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,31 +1,49 @@
|
||||
# Installation configuration
|
||||
#
|
||||
# When running the Install step, we don't actually install Bloom on the user's machine. We install it in a release
|
||||
# directory, to be used for packaging.
|
||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/release/")
|
||||
|
||||
install(TARGETS Bloom DESTINATION bin PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ)
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(CMAKE_INSTALL_PREFIX "/opt/bloom" CACHE PATH "..." FORCE)
|
||||
endif()
|
||||
|
||||
install(
|
||||
DIRECTORY build/bin/plugins
|
||||
TARGETS Bloom
|
||||
DESTINATION "bin"
|
||||
DIRECTORY_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
|
||||
PERMISSIONS
|
||||
OWNER_EXECUTE OWNER_READ OWNER_WRITE
|
||||
GROUP_EXECUTE GROUP_READ
|
||||
WORLD_EXECUTE WORLD_READ
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY build/bin/platforms
|
||||
DESTINATION "bin"
|
||||
DIRECTORY_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY build/resources
|
||||
DIRECTORY ${CMAKE_BINARY_DIR}/resources
|
||||
DESTINATION "."
|
||||
DIRECTORY_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
|
||||
DIRECTORY_PERMISSIONS
|
||||
OWNER_EXECUTE OWNER_READ OWNER_WRITE
|
||||
GROUP_EXECUTE GROUP_READ
|
||||
WORLD_EXECUTE WORLD_READ
|
||||
FILE_PERMISSIONS
|
||||
OWNER_EXECUTE OWNER_READ OWNER_WRITE
|
||||
GROUP_EXECUTE GROUP_READ
|
||||
WORLD_EXECUTE WORLD_READ
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY build/bin/lib
|
||||
DESTINATION "bin"
|
||||
DIRECTORY_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
|
||||
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/build/distributed/fonts
|
||||
DESTINATION "resources"
|
||||
DIRECTORY_PERMISSIONS
|
||||
OWNER_EXECUTE OWNER_READ OWNER_WRITE
|
||||
GROUP_EXECUTE GROUP_READ
|
||||
WORLD_EXECUTE WORLD_READ
|
||||
FILE_PERMISSIONS
|
||||
OWNER_READ OWNER_WRITE
|
||||
GROUP_EXECUTE GROUP_READ
|
||||
WORLD_EXECUTE WORLD_READ
|
||||
)
|
||||
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/build/distributed/udevrules/99-bloom.rules
|
||||
DESTINATION "/usr/lib/udev/rules.d/"
|
||||
PERMISSIONS
|
||||
OWNER_READ OWNER_WRITE
|
||||
GROUP_READ
|
||||
WORLD_READ
|
||||
)
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace Bloom
|
||||
(
|
||||
QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts, true),
|
||||
#ifndef BLOOM_DEBUG_BUILD
|
||||
QCoreApplication::addLibraryPath(QString::fromStdString(Paths::applicationDirPath() + "/plugins")),
|
||||
QCoreApplication::addLibraryPath(QString::fromStdString(Paths::applicationDirPath() + "/../plugins")),
|
||||
#endif
|
||||
QApplication(this->qtApplicationArgc, this->qtApplicationArgv.data())
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user