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

Created Cmake

parent 3e205f8c
Branches
Tags
No related merge requests found
Pipeline #12301 passed
...@@ -14,7 +14,4 @@ CMakeCache.txt ...@@ -14,7 +14,4 @@ CMakeCache.txt
*.qm *.qm
*.ilk *.ilk
*.pdb *.pdb
*.lib *.lib
*.json \ No newline at end of file
*.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