Skip to content
Snippets Groups Projects
Commit 73cb6cd8 authored by moenck's avatar moenck
Browse files

Created Cmake

parent 3e205f8c
No related branches found
No related tags found
No related merge requests found
Pipeline #12301 passed
...@@ -15,6 +15,3 @@ CMakeCache.txt ...@@ -15,6 +15,3 @@ CMakeCache.txt
*.ilk *.ilk
*.pdb *.pdb
*.lib *.lib
*.json
*.txt
*.xml
\ No newline at end of file
cmake_minimum_required(VERSION 3.12)
exec_program("git" ${CMAKE_CURRENT_SOURCE_DIR} ARGS "describe --tags --abbrev=0" OUTPUT_VARIABLE GIT_TAG)
project(BT_Interfaces
VERSION ${GIT_TAG}
LANGUAGES CXX)
include(GNUInstallDirs)
set(INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Installation directory for executables")
set(INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
set(INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} CACHE PATH "Installation directory for header files")
set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} CACHE STRING "Installation directory for cmake configuration files")
set(TN BT_Interfaces)
add_library(${TN} SHARED)
set_target_properties(${TN} PROPERTIES OUTPUT_NAME bt_interfaces)
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
set_target_properties(${TN} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS true)
endif()
include(Src/CMakeLists.txt)
install(
TARGETS
BT_Interfaces
EXPORT
${PROJECT_NAME}Targets
RUNTIME DESTINATION "${INSTALL_BINDIR}"
LIBRARY DESTINATION "${INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${INSTALL_LIBDIR}"
)
foreach(file ${BT_Interfaces_PUBLIC_HEADERS})
file(RELATIVE_PATH rel_path "${CMAKE_CURRENT_LIST_DIR}/Src" ${file})
get_filename_component(install_path ${rel_path} DIRECTORY)
install(FILES ${file} DESTINATION "${INSTALL_INCLUDEDIR}/${install_path}")
endforeach()
export(
TARGETS
BT_Interfaces
FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake"
)
install(EXPORT ${PROJECT_NAME}Targets
FILE ${PROJECT_NAME}Targets.cmake
DESTINATION ${INSTALL_CONFIGDIR}
)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion
)
configure_package_config_file(
${CMAKE_CURRENT_LIST_DIR}/cmake/${PROJECT_NAME}Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
INSTALL_DESTINATION ${INSTALL_CONFIGDIR}
)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
DESTINATION ${INSTALL_CONFIGDIR}
)
install(
FILES
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Deploy.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Windeployqt.cmake
DESTINATION ${INSTALL_CONFIGDIR}/Modules/${PROJECT_NAME}
)
set(CPACK_GENERATOR "TXZ")
set(CPACK_PACKAGE_VERSION ${GIT_TAG})
include(CPack)
##############################################################
#### Biotracker: Interfaces
##############################################################
target_include_directories(${TN} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
$<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}>
)
find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets OpenGL Xml Network)
target_link_libraries(${TN} Qt5::Core Qt5::Gui Qt5::Xml Qt5::Network Qt5::Widgets)
find_package(OpenCV 3 REQUIRED)
target_link_libraries(${TN} ${OpenCV_LIBS})
set_target_properties(${TN} PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(${TN} PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON)
set_target_properties(${TN} PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO
)
target_compile_definitions(${TN} PRIVATE RF_INTERFACES_EXPORT)
target_sources(${TN}
PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IBioTrackerContext.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IBioTrackerPlugin.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IController/IController.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModel.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelAreaDescriptor.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelDataExporter.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelTrackedComponent.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelTrackedComponentFactory.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelTrackedTrajectory.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelTrackingAlgorithm.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IObject.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/Serializable.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IView.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewGraphicsPixmapItem.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewGraphicsScene.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewGraphicsView.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewMainWindow.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewOpenGLWidget.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewTrackedComponent.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewWidget.cpp"
)
set(${TN}_PUBLIC_HEADERS
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/ENUMS.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IBioTrackerContext.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IBioTrackerPlugin.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IController/IController.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModel.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelAreaDescriptor.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelDataExporter.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelTrackedComponent.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelTrackedComponentFactory.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelTrackedTrajectory.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IModelTrackingAlgorithm.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/IObject.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IModel/Serializable.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IView.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewGraphicsPixmapItem.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewGraphicsScene.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewGraphicsView.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewMainWindow.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewOpenGLWidget.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewTrackedComponent.h"
"${CMAKE_CURRENT_LIST_DIR}/Interfaces/IView/IViewWidget.h"
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment