Skip to content
Snippets Groups Projects
Commit 4e6e371a authored by calrama's avatar calrama
Browse files

Update CMake

- CMake 3.13
- Project rename
parent 8f302698
No related branches found
No related tags found
No related merge requests found
Pipeline #13357 failed
cmake_minimum_required(VERSION 3.12)
cmake_minimum_required(VERSION 3.13)
exec_program("git" ${CMAKE_CURRENT_SOURCE_DIR} ARGS "describe --abbrev=0 --tags" OUTPUT_VARIABLE GIT_TAG)
cmake_policy (SET CMP0020 NEW)
message("Git tag: " ${GIT_TAG})
project(RF_behavior_loader
project(robofish-behavior_loader
VERSION ${GIT_TAG}
LANGUAGES CXX)
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
option(PACKAGE_WINDOWS_MSI "Create .msi package" OFF)
endif()
include(GNUInstallDirs)
......@@ -20,32 +13,14 @@ set(INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory fo
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 RF_behavior_loader)
add_library(${TN} STATIC)
set_target_properties(${TN} PROPERTIES OUTPUT_NAME rf_behavior_loader)
include(SrcBehaviorLoader/CMakeLists.txt)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
target_link_libraries(${TN} stdc++fs)
endif()
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
include(Headers)
install(
TARGETS
RF_behavior_loader
EXPORT
${PROJECT_NAME}Targets
RUNTIME DESTINATION "${INSTALL_BINDIR}"
ARCHIVE DESTINATION "${INSTALL_LIBDIR}"
)
foreach(file ${RF_behavior_loader_PUBLIC_HEADERS})
file(RELATIVE_PATH rel_path "${CMAKE_CURRENT_LIST_DIR}/SrcBehaviorLoader" ${file})
get_filename_component(install_path ${rel_path} DIRECTORY)
install(FILES ${file} DESTINATION "${INSTALL_INCLUDEDIR}/${install_path}")
endforeach()
add_subdirectory(SrcBehaviorLoader)
export(
TARGETS
RF_behavior_loader
${PROJECT_NAME}
FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake"
)
......@@ -75,12 +50,6 @@ install(
DESTINATION ${INSTALL_CONFIGDIR}
)
install(
FILES
${CMAKE_CURRENT_SOURCE_DIR}/cmake/VSSugar.cmake
DESTINATION ${INSTALL_CONFIGDIR}/Modules/${PROJECT_NAME}
)
set(CPACK_PACKAGE_VERSION ${GIT_TAG})
set(CPACK_GENERATOR "TXZ")
......
target_include_directories(${TN} PUBLIC
set(target ${PROJECT_NAME})
add_library(${target} STATIC)
install(
TARGETS
${PROJECT_NAME}
EXPORT
${PROJECT_NAME}Targets
RUNTIME DESTINATION "${INSTALL_BINDIR}"
ARCHIVE DESTINATION "${INSTALL_LIBDIR}"
)
target_include_directories(${target} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
$<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}>
)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
target_link_libraries(${target} stdc++fs)
endif()
find_package(Qt5 REQUIRED COMPONENTS Core)
target_link_libraries(${TN} Qt5::Core)
target_link_libraries(${target} Qt5::Core)
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
set_target_properties(${target} PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(${target} PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON)
set_target_properties(${target} PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO
)
target_sources(${TN}
PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/PluginLoader.cpp"
target_sources(${target}
PRIVATE
PluginLoader.cpp
)
set(${TN}_PUBLIC_HEADERS
"${CMAKE_CURRENT_LIST_DIR}/PluginLoader.h"
instalL_headers(
HEADERS
PluginLoader.h
DESTINATION "${INSTALL_INCLUDEDIR}"
)
function(install_headers)
cmake_parse_arguments(ARGS "" "DESTINATION" "HEADERS" ${ARGN})
foreach(file ${ARGS_HEADERS})
get_filename_component(install_path ${file} DIRECTORY)
install(FILES ${file} DESTINATION "${ARGS_DESTINATION}/${install_path}")
endforeach()
endfunction()
macro(VSSourceGroups ROOT_PATH)
file(
GLOB_RECURSE sources
LIST_DIRECTORIES false
"${ROOT_PATH}/*.c*"
"${ROOT_PATH}/*.h*"
"${ROOT_PATH}/*.ui*"
)
foreach(source IN ITEMS ${sources})
get_filename_component(path "${source}" PATH)
file(RELATIVE_PATH rel_path "${ROOT_PATH}" "${path}")
string(REPLACE "/" "\\" group_path "${rel_path}")
source_group("${group_path}" FILES "${source}")
endforeach()
endmacro()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment