cmake_minimum_required(VERSION 3.16) project(DCSsim LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) set(TOOLS_BIN ${CMAKE_CURRENT_SOURCE_DIR}/../bin) file(MAKE_DIRECTORY ${TOOLS_BIN}) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network) find_package(Comms HINTS ${CMAKE_CURRENT_SOURCE_DIR}/../../lib/Comms REQUIRED) find_package(MsgUtils HINTS ${CMAKE_CURRENT_SOURCE_DIR}/../../lib/MsgUtils REQUIRED) set(INCLUDES DCSSimController.h ) set(SRCS DCSSimController.cpp main.cpp ) add_executable(${PROJECT_NAME} ${INCLUDES} ${SRCS} ) target_link_libraries(${PROJECT_NAME} PRIVATE Comms MsgUtils Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network ) # rpath to the in-tree libraries rather than needing LD_LIBRARY_PATH set(DCSSIM_RPATH "${CMAKE_CURRENT_SOURCE_DIR}/../../lib/Comms/lib;${CMAKE_CURRENT_SOURCE_DIR}/../../lib/MsgUtils/lib" ) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TOOLS_BIN} BUILD_RPATH "${DCSSIM_RPATH}" INSTALL_RPATH "${DCSSIM_RPATH}" ) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${TOOLS_BIN} )