1.99.42
This commit is contained in:
@ -88,6 +88,7 @@ function(myx_add_library NAME TYPE)
|
||||
EXPORT_FILE_NAME ${ARG_EXPORT_FILE_NAME}
|
||||
DEFINE_NO_DEPRECATED
|
||||
)
|
||||
set_property(TARGET ${NAME} APPEND PROPERTY INTERFACE_HEADER_FILES "${ARG_EXPORT_FILE_NAME}")
|
||||
|
||||
# Цель для создания динамической библиотеки из объектных файлов
|
||||
if(${PROJECT_NAME_UPPER}_BUILD_SHARED)
|
||||
@ -190,12 +191,6 @@ function(myx_add_library NAME TYPE)
|
||||
COMPONENT dev
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||
|
||||
# Установка содержимого каталога с заголовочными файлами
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
COMPONENT dev
|
||||
)
|
||||
|
||||
if(TYPE STREQUAL "OBJECT")
|
||||
# Установка динамической библиотеки
|
||||
if(TARGET ${NAME}_shared)
|
||||
|
@ -3,14 +3,14 @@ include_guard(GLOBAL)
|
||||
function(myx_qt5_target_setup NAME)
|
||||
set(options)
|
||||
set(oneValueArgs)
|
||||
set(multiValueArgs COMPONENTS PRIVATE CPP HPP MOC UI QRC LANGS SOURCES)
|
||||
set(multiValueArgs COMPONENTS PRIVATE PUBLIC_MOC PRIVATE_MOC UI QRC LANGS)
|
||||
|
||||
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
get_target_property(type ${NAME} TYPE)
|
||||
|
||||
if(ARG_SOURCES)
|
||||
myx_message_deprecation("MyxCMake: Use CPP and HPP arguments instead of SOURCES")
|
||||
if(ARG_SOURCES OR ARG_CPP OR ARG_HPP OR ARG_MOD)
|
||||
myx_message_fatal_error("MyxCMake: prohibited use")
|
||||
endif()
|
||||
|
||||
if(ARG_COMPONENTS)
|
||||
@ -33,16 +33,16 @@ function(myx_qt5_target_setup NAME)
|
||||
target_compile_options(${NAME} PRIVATE ${Qt5Core_EXECUTABLE_COMPILE_FLAGS})
|
||||
endif()
|
||||
|
||||
if(ARG_CPP)
|
||||
set_target_properties(${NAME} PROPERTIES CPP_FILES ${ARG_CPP})
|
||||
if(ARG_PUBLIC_MOC)
|
||||
set_property(TARGET ${NAME} APPEND PROPERTY PUBLIC_HEADER_FILES "${ARG_PUBLIC_MOC}")
|
||||
endif()
|
||||
|
||||
if(ARG_HPP OR ARG_MOC)
|
||||
set_target_properties(${NAME} PROPERTIES HPP_FILES ${ARG_HPP} ${ARG_MOC})
|
||||
if(ARG_PRIVATE_MOC)
|
||||
set_property(TARGET ${NAME} APPEND PROPERTY PRIVATE_HEADER_FILES "${ARG_PRIVATE_MOC}")
|
||||
endif()
|
||||
|
||||
if(ARG_MOC)
|
||||
qt5_wrap_cpp(moc_cpp ${ARG_MOC})
|
||||
if(ARG_PUBLIC_MOC OR ARG_PRIVATE_MOC)
|
||||
qt5_wrap_cpp(moc_cpp ${ARG_PUBLIC_MOC} ${ARG_PRIVATE_MOC})
|
||||
endif()
|
||||
|
||||
if(ARG_QRC)
|
||||
@ -64,6 +64,12 @@ function(myx_qt5_target_setup NAME)
|
||||
unset(qm)
|
||||
endif()
|
||||
|
||||
target_sources(${NAME} PRIVATE ${ARG_HPP} ${ARG_CPP} ${ARG_SOURCES} ${ARG_MOC} ${moc_cpp} ${ui_h} ${qrc_cpp})
|
||||
target_sources(${NAME} PRIVATE ${ARG_PUBLIC_MOC} ${ARG_PRIVATE_MOC} ${moc_cpp} ${ui_h} ${qrc_cpp})
|
||||
|
||||
# Установка публичных заголовочных файлов
|
||||
install_relative(${PROJECT_SOURCE_DIR}
|
||||
FILES ${ARG_PUBLIC_MOC}
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}
|
||||
COMPONENT dev
|
||||
)
|
||||
endfunction()
|
||||
|
@ -3,7 +3,8 @@ include_guard(GLOBAL)
|
||||
function(myx_target_setup NAME)
|
||||
set(options)
|
||||
set(oneValueArgs PCH)
|
||||
set(multiValueArgs COMPILE_DEFINITIONS FIND_PACKAGES LINK_LIBRARIES CPP HPP SOURCES)
|
||||
set(multiValueArgs COMPILE_DEFINITIONS FIND_PACKAGES LINK_LIBRARIES
|
||||
CPP PUBLIC_HEADERS PRIVATE_HEADERS SOURCES)
|
||||
|
||||
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
@ -21,15 +22,19 @@ function(myx_target_setup NAME)
|
||||
target_compile_definitions(${NAME} PRIVATE ${ARG_COMPILE_DEFINITIONS})
|
||||
|
||||
if(ARG_SOURCES)
|
||||
myx_message_deprecation("MyxCMake: Use CPP and HPP arguments instead of SOURCES")
|
||||
myx_message_fatal_error("MyxCMake: Use of SOURCES argument")
|
||||
endif()
|
||||
|
||||
if(ARG_CPP)
|
||||
set_target_properties(${NAME} PROPERTIES CPP_FILES ${ARG_CPP})
|
||||
set_property(TARGET ${NAME} APPEND PROPERTY CPP_FILES ${ARG_CPP})
|
||||
endif()
|
||||
|
||||
if(ARG_HPP)
|
||||
set_target_properties(${NAME} PROPERTIES HPP_FILES ${ARG_HPP})
|
||||
if(ARG_PUBLIC_HEADERS)
|
||||
set_property(TARGET ${NAME} APPEND PROPERTY PUBLIC_HEADER_FILES "${ARG_PUBLIC_HEADERS}")
|
||||
endif()
|
||||
|
||||
if(ARG_PUBLIC_HEADERS)
|
||||
set_property(TARGET ${NAME} APPEND PROPERTY PRIVATE_HEADER_FILES "${ARG_PRIVATE_HEADERS}")
|
||||
endif()
|
||||
|
||||
if(ARG_PCH)
|
||||
@ -38,7 +43,7 @@ function(myx_target_setup NAME)
|
||||
else()
|
||||
target_compile_options(${NAME} PRIVATE -include ${ARG_PCH})
|
||||
endif()
|
||||
target_sources(${NAME} PRIVATE ${ARG_PCH})
|
||||
set_property(TARGET ${NAME} APPEND PROPERTY PRIVATE_HEADER_FILES "${ARG_PCH}")
|
||||
endif()
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
@ -65,7 +70,15 @@ function(myx_target_setup NAME)
|
||||
install(TARGETS ${NAME} COMPONENT main RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif()
|
||||
|
||||
target_sources(${NAME} PRIVATE ${ARG_CPP} ${ARG_HPP} ${ARG_SOURCES})
|
||||
target_sources(${NAME} PUBLIC ${ARG_PUBLIC_HEADERS})
|
||||
target_sources(${NAME} PRIVATE ${ARG_CPP} ${ARG_PCH} ${ARG_PRIVATE_HEADERS})
|
||||
target_link_libraries(${NAME} PRIVATE ${ARG_LINK_LIBRARIES})
|
||||
target_compile_definitions(${NAME} PRIVATE ${ARG_COMPILE_DEFINITIONS})
|
||||
|
||||
# Установка публичных заголовочных файлов
|
||||
install_relative(${PROJECT_SOURCE_DIR}
|
||||
FILES ${ARG_PUBLIC_HEADERS}
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}
|
||||
COMPONENT dev
|
||||
)
|
||||
endfunction()
|
||||
|
Reference in New Issue
Block a user