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) exec_program("git" ${CMAKE_CURRENT_SOURCE_DIR} ARGS "describe --abbrev=0 --tags" OUTPUT_VARIABLE GIT_TAG)
cmake_policy (SET CMP0020 NEW) project(robofish-behavior_loader
message("Git tag: " ${GIT_TAG})
project(RF_behavior_loader
VERSION ${GIT_TAG} VERSION ${GIT_TAG}
LANGUAGES CXX) LANGUAGES CXX)
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
option(PACKAGE_WINDOWS_MSI "Create .msi package" OFF)
endif()
include(GNUInstallDirs) include(GNUInstallDirs)
set(INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Installation directory for executables") set(INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Installation directory for executables")
...@@ -20,32 +13,14 @@ set(INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory fo ...@@ -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_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(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} CACHE STRING "Installation directory for cmake configuration files")
set(TN RF_behavior_loader) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
add_library(${TN} STATIC) include(Headers)
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()
install( add_subdirectory(SrcBehaviorLoader)
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()
export( export(
TARGETS TARGETS
RF_behavior_loader ${PROJECT_NAME}
FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake" FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake"
) )
...@@ -75,12 +50,6 @@ install( ...@@ -75,12 +50,6 @@ install(
DESTINATION ${INSTALL_CONFIGDIR} 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_PACKAGE_VERSION ${GIT_TAG})
set(CPACK_GENERATOR "TXZ") 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}> $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
$<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}>
) )
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
target_link_libraries(${target} stdc++fs)
endif()
find_package(Qt5 REQUIRED COMPONENTS Core) 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(${target} PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(${TN} PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON) set_target_properties(${target} PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON)
set_target_properties(${TN} PROPERTIES set_target_properties(${target} PROPERTIES
CXX_STANDARD 17 CXX_STANDARD 17
CXX_STANDARD_REQUIRED YES CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO CXX_EXTENSIONS NO
) )
target_sources(${TN} target_sources(${target}
PRIVATE PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/PluginLoader.cpp" PluginLoader.cpp
) )
set(${TN}_PUBLIC_HEADERS instalL_headers(
"${CMAKE_CURRENT_LIST_DIR}/PluginLoader.h" 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