Index: lib/Comms/CMakeLists.txt =================================================================== diff -u -rf9c6b488aa4135e8cd47ccd3fdc6c3ae1cd831aa -ra5781739bcbe58c754aff8861561495624bc5b67 --- lib/Comms/CMakeLists.txt (.../CMakeLists.txt) (revision f9c6b488aa4135e8cd47ccd3fdc6c3ae1cd831aa) +++ lib/Comms/CMakeLists.txt (.../CMakeLists.txt) (revision a5781739bcbe58c754aff8861561495624bc5b67) @@ -7,16 +7,33 @@ find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network SerialBus) -find_package(MsgUtils HINTS ${CMAKE_CURRENT_SOURCE_DIR}/../MsgUtils REQUIRED) set(INCLUDES - include/AgentInterface.h include/CanInterface.h + include/CanMessage.h + include/crc.h + include/format.h + include/FrameInterface.h + include/main.h + include/MessageBuilder.h + include/MessageDispatcher.h + include/RtInterface.h + include/RtMessage.h + include/RtServer.h + include/types.h ) set(SRCS - src/AgentInterface.cpp src/CanInterface.cpp + src/crc.cpp + src/format.cpp + src/FrameInterface.cpp + src/MessageBuilder.cpp + src/MessageDispatcher.cpp + src/RtInterface.cpp + src/RtMessage.cpp + src/RtServer.cpp + src/types.cpp ) add_library(${PROJECT_NAME} SHARED) @@ -35,14 +52,12 @@ ) target_link_libraries(${PROJECT_NAME} PUBLIC - MsgUtils Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network Qt${QT_VERSION_MAJOR}::SerialBus ) target_include_directories(${PROJECT_NAME} PUBLIC $) -target_compile_definitions(${PROJECT_NAME} PRIVATE COMMS_LIBRARY) install( TARGETS ${PROJECT_NAME} @@ -53,7 +68,7 @@ LIBRARY DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/lib" COMPONENT dev ) -# Add all targets to the build-tree export set +# Export the targets so a sibling component can find this one without installing export( TARGETS ${PROJECT_NAME} FILE "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Targets.cmake" @@ -62,22 +77,22 @@ file(RELATIVE_PATH REL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_CURRENT_SOURCE_DIR}/include") set(CONF_INCLUDE_DIRS "\${COMMS_CMAKE_DIR}/${REL_INCLUDE_DIR}") -# Create the ${PROJECT_NAME}Config.cmake and -# ${PROJECT_NAME}ConfigVersion.cmake files ... for the build tree +# Config files find_package() consumes, written straight to the source cmake/ dir configure_file(${PROJECT_NAME}Config.cmake.in "${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake" @ONLY) configure_file(${PROJECT_NAME}ConfigVersion.cmake.in "${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake" @ONLY) -# ... for the install tree +# Same files staged in the binary dir, for the install() below to copy from configure_file(${PROJECT_NAME}Config.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake" @ONLY) configure_file( ${PROJECT_NAME}ConfigVersion.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}ConfigVersion.cmake" @ONLY) -# Install the ${PROJECT_NAME}Config.cmake and ${PROJECT_NAME}ConfigVersion.cmake +# Install the staged config files and the export set. Note the DESTINATIONs are +# absolute paths into the source tree, so `install` writes back to cmake/ here +# rather than to CMAKE_INSTALL_PREFIX. install( FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake" "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ) -# Install the export set for use with the install-tree install(EXPORT ${PROJECT_NAME}Targets DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/cmake")