mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-08-03 18:18:12 +02:00
added toolchain file for cross compilation
This commit is contained in:
@@ -249,6 +249,18 @@ if(SLS_BUILD_ONLY_MOENCH)
|
||||
set(SLS_USE_MOENCH ON CACHE BOOL "Enable" FORCE)
|
||||
endif()
|
||||
|
||||
option(SLS_BUILD_ONLY_MATTERHORN "compile only Matterhorn" OFF)
|
||||
if(SLS_BUILD_ONLY_MATTERHORN)
|
||||
message(STATUS "Build MATTERHORN server only!")
|
||||
set(SLS_BUILD_SHARED_LIBRARIES OFF CACHE BOOL "Disabled for MATTERHORN_ONLY" FORCE)
|
||||
set(SLS_USE_TEXTCLIENT OFF CACHE BOOL "Disabled for MATTERHORN_ONLY" FORCE)
|
||||
set(SLS_USE_DETECTOR ON CACHE BOOL "Disabled for MATTERHORN_ONLY" FORCE)
|
||||
set(SLS_USE_RECEIVER OFF CACHE BOOL "Disabled for MATTERHORN_ONLY" FORCE)
|
||||
set(SLS_USE_RECEIVER_BINARIES OFF CACHE BOOL "Disabled for MATTERHORN_ONLY" FORCE)
|
||||
set(SLS_USE_SERVER ON CACHE BOOL "Enable building cpp server" FORCE)
|
||||
set(SLS_USE_MATTERHORN ON CACHE BOOL "Enable Matterhorn" FORCE)
|
||||
endif()
|
||||
|
||||
#Convenience option to switch off defaults when building Jungfrau binaries only
|
||||
option(SLS_BUILD_ONLY_JUNGFRAU "compile only Jungfrau" OFF)
|
||||
if(SLS_BUILD_ONLY_JUNGFRAU)
|
||||
|
||||
@@ -6,11 +6,19 @@ set(MATTERHORN_SOURCES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/HelperFunctions.cpp
|
||||
)
|
||||
|
||||
|
||||
if(SLS_USE_SIMULATOR)
|
||||
list(APPEND MATTERHORN_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/VirtualMatterhornServer.cpp)
|
||||
|
||||
set(MATTERHORN_SERVER_HEADER "VirtualMatterhornServer.h")
|
||||
|
||||
add_executable(matterhornDetectorServer_virtual ${MATTERHORN_SOURCES})
|
||||
|
||||
target_compile_definitions(matterhornDetectorServer_virtual PRIVATE
|
||||
MATTERHORN_SERVER_HEADER=<VirtualMatterhornServer.h>
|
||||
MATTERHORN_SERVER_CLASS=VirtualMatterhornServer
|
||||
)
|
||||
|
||||
target_include_directories(matterhornDetectorServer_virtual
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../slsSupportLib/include
|
||||
@@ -29,31 +37,35 @@ if(SLS_USE_SIMULATOR)
|
||||
install(TARGETS matterhornDetectorServer_virtual
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
else()
|
||||
list(APPEND MATTERHORN_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/MatterhornServer.cpp)
|
||||
endif() # maybe better to have a else if build with simulators on one always uses the virtual server in MatterhornApp
|
||||
|
||||
add_executable(matterhornDetectorServer ${MATTERHORN_SOURCES})
|
||||
list(APPEND MATTERHORN_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/MatterhornServer.cpp)
|
||||
|
||||
target_include_directories(matterhornDetectorServer
|
||||
add_executable(matterhornDetectorServer ${MATTERHORN_SOURCES})
|
||||
|
||||
target_compile_definitions(matterhornDetectorServer PRIVATE
|
||||
MATTERHORN_SERVER_HEADER=<MatterhornServer.h>
|
||||
MATTERHORN_SERVER_CLASS=MatterhornServer
|
||||
)
|
||||
|
||||
target_include_directories(matterhornDetectorServer
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../slsSupportLib/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../slsDetectorServer_cpp/include)
|
||||
|
||||
target_link_libraries(matterhornDetectorServer
|
||||
PUBLIC
|
||||
slsSupportStatic
|
||||
#slsDetectorStatic
|
||||
slsServerStatic)
|
||||
target_link_libraries(matterhornDetectorServer
|
||||
PUBLIC
|
||||
slsSupportStatic
|
||||
slsServerStatic)
|
||||
|
||||
set_target_properties(matterhornDetectorServer PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
)
|
||||
set_target_properties(matterhornDetectorServer PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
)
|
||||
|
||||
install(TARGETS matterhornDetectorServer
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
install(TARGETS matterhornDetectorServer
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
if(SLS_USE_TESTS)
|
||||
add_subdirectory(tests)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "CommandLineOptions.h"
|
||||
#include "VirtualMatterhornServer.h"
|
||||
#include MATTERHORN_SERVER_HEADER
|
||||
#include "sls/logger.h"
|
||||
#include "sls/sls_detector_exceptions.h"
|
||||
#include "sls/versionAPI.h"
|
||||
@@ -75,7 +75,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
LOG(TLogLevel::logINFOBLUE) << "Stop Server [" << opts.port + 1 << "]";
|
||||
try {
|
||||
VirtualMatterhornServer stopServer(opts.port + 1);
|
||||
MATTERHORN_SERVER_CLASS stopServer(opts.port + 1);
|
||||
while (!interruption) {
|
||||
pause(); // wait for signal to exit
|
||||
}
|
||||
@@ -93,7 +93,7 @@ int main(int argc, char *argv[]) {
|
||||
LOG(TLogLevel::logINFOBLUE) << "Control Server [" << opts.port << "]\n";
|
||||
|
||||
try {
|
||||
VirtualMatterhornServer server(
|
||||
MATTERHORN_SERVER_CLASS server(
|
||||
opts.port); // TODO use virtual if compiled with virtual
|
||||
// simulators on
|
||||
while (!interruption) {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#Usage: cmake .. -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -DSLS_BUILD_ONLY_MATTERHORN=ON
|
||||
|
||||
set(SLS_ARM_COMPILER "/psi.ch/group/detector/firmware/arm64_linux/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/" CACHE PATH "Path to the ARM cross compiler")
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
|
||||
set(CMAKE_C_COMPILER "${SLS_ARM_COMPILER}/bin/aarch64-none-linux-gnu-gcc")
|
||||
set(CMAKE_CXX_COMPILER "${SLS_ARM_COMPILER}/bin/aarch64-none-linux-gnu-g++")
|
||||
|
||||
set(CMAKE_AR "${SLS_ARM_COMPILER}/bin/aarch64-none-linux-gnu-ar")
|
||||
set(CMAKE_RANLIB "${SLS_ARM_COMPILER}/bin/aarch64-none-linux-gnu-ranlib")
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH "${SLS_ARM_COMPILER}")
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
Reference in New Issue
Block a user