This commit is contained in:
2022-10-09 01:01:31 +03:00
parent 49b06f12cb
commit 120146f6ce
25 changed files with 264 additions and 24 deletions

View File

@ -46,7 +46,7 @@ function(myx_add_library NAME TYPE)
if(TYPE STREQUAL "INTERFACE")
# Библиотека, состоящая только из заголовочных файлов не требует сборки.
# Стандартные пути к заголовочным файлам
target_include_directories(${NAME} SYSTEM INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>)
target_include_directories(${NAME} INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>)
else()
string(TOUPPER ${NAME} PROJECT_NAME_UPPER)
# Опция для разрешения сборки динамической библиотеки

View File

@ -9,7 +9,7 @@ file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/include)
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
create_symlink("${CMAKE_SOURCE_DIR}/files/etc" "${CMAKE_BINARY_DIR}/etc")
create_symlink("${CMAKE_SOURCE_DIR}/files/log" "${CMAKE_BINARY_DIR}/log")
create_symlink("${CMAKE_SOURCE_DIR}/files/share" "${CMAKE_BINARY_DIR}/share")
create_symlink("${CMAKE_SOURCE_DIR}/files/var" "${CMAKE_BINARY_DIR}/var")
myx_create_symlink("${CMAKE_SOURCE_DIR}/files/etc" "${CMAKE_BINARY_DIR}/etc")
myx_create_symlink("${CMAKE_SOURCE_DIR}/files/log" "${CMAKE_BINARY_DIR}/log")
myx_create_symlink("${CMAKE_SOURCE_DIR}/files/share" "${CMAKE_BINARY_DIR}/share")
myx_create_symlink("${CMAKE_SOURCE_DIR}/files/var" "${CMAKE_BINARY_DIR}/var")

View File

@ -91,7 +91,7 @@ function(myx_qt5_target_setup NAME)
# Установка публичных заголовочных файлов
if(PROJECT_IS_TOP_LEVEL)
install_relative(${PROJECT_SOURCE_DIR}
myx_install_relative(${PROJECT_SOURCE_DIR}
FILES ${ARG_PUBLIC_MOC}
DESTINATION ${CMAKE_INSTALL_PREFIX}
COMPONENT dev

View File

@ -74,7 +74,7 @@ function(myx_target_setup NAME)
endif()
if(${target_type} STREQUAL "INTERFACE_LIBRARY")
target_sources(${NAME} INTERFACE ${ARG_INTERFACE_HEADERS})
target_sources(${NAME} INTERFACE $<BUILD_INTERFACE:${ARG_INTERFACE_HEADERS}>)
else()
target_sources(${NAME} PUBLIC $<BUILD_INTERFACE:${ARG_INTERFACE_HEADERS}>)
target_sources(${NAME} PUBLIC ${ARG_PUBLIC_HEADERS})
@ -120,7 +120,7 @@ function(myx_target_setup NAME)
# Установка публичных заголовочных файлов
if(PROJECT_IS_TOP_LEVEL)
install_relative(${PROJECT_SOURCE_DIR}
myx_install_relative(${PROJECT_SOURCE_DIR}
FILES ${ARG_PUBLIC_HEADERS} ${ARG_INTERFACE_HEADERS}
DESTINATION ${CMAKE_INSTALL_PREFIX}
COMPONENT dev

View File

@ -1,11 +1,11 @@
include_guard(GLOBAL)
macro(create_symlink original linkname)
macro(myx_create_symlink original linkname)
if(NOT EXISTS ${linkname})
if(${CMAKE_VERSION} VERSION_LESS "3.14.0")
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${original} ${linkname})
execute_process(COMMAND ${CMAKE_COMMAND} -E myx_create_symlink ${original} ${linkname})
else()
file(CREATE_LINK ${original} ${linkname} SYMBOLIC)
endif()
endif()
endmacro(create_symlink original linkname)
endmacro(myx_create_symlink original linkname)

View File

@ -1,6 +1,6 @@
include_guard(GLOBAL)
macro(myx_find_packages)
macro(myx_find_requred_packages)
set(options)
set(oneValueArgs)
set(multiValueArgs PACKAGES Boost Qt5 Qt5Private)

View File

@ -1,10 +1,10 @@
#[=======================================================================[.rst:
install_relative
----------------
myx_install_relative
--------------------
#]=======================================================================]
macro(install_relative STRIP_DIRECTORY)
macro(myx_install_relative STRIP_DIRECTORY)
set(options)
set(oneValueArgs DESTINATION)
set(multiValueArgs FILES)
@ -16,4 +16,4 @@ macro(install_relative STRIP_DIRECTORY)
string(REPLACE ${STRIP_DIRECTORY} "" RELATIVE_DIR ${DIR})
INSTALL(FILES ${FILE} DESTINATION ${ARG_DESTINATION}/${RELATIVE_DIR} ${ARG_UNPARSED_ARGUMENTS})
endforeach()
endmacro(install_relative STRIP_DIRECTORY)
endmacro(myx_install_relative STRIP_DIRECTORY)

View File

@ -7,7 +7,7 @@ macro(myx_skip_external_target NAME)
get_target_property(__sources ${NAME} INTERFACE_SOURCES)
foreach(iter ${__sources})
string(FIND ${iter} ${CMAKE_BINARY_DIR} __pos)
if(__pos EQUAL 0)
if(__pos GREATER -1)
unset(__type)
unset(__pos)
unset(__sources)