Сборка примеров

This commit is contained in:
Andrei Astafev 2020-04-22 19:54:09 +03:00
parent b2731ac32f
commit 352bf756bd
6 changed files with 107 additions and 70 deletions

View File

@ -50,8 +50,6 @@ add_subdirectory(src/myx/redis)
if(MYXLIB_BUILD_EXAMPLES OR MYXLIB_BUILD_EXAMPLES_HO) if(MYXLIB_BUILD_EXAMPLES OR MYXLIB_BUILD_EXAMPLES_HO)
add_subdirectory(examples/filesystem) add_subdirectory(examples/filesystem)
add_subdirectory(examples/qt) add_subdirectory(examples/qt)
add_dependencies(example-filesystem-minimal create_auxilary_symlinks)
endif() endif()
# Документация # Документация

@ -1 +1 @@
Subproject commit 83a9e94e31ab410c3346a36ddd2d10aa91375617 Subproject commit 197e5b3939709a0cc4924e44c355aa8ad7358b8e

View File

@ -4,9 +4,9 @@ set(TRGT example-filesystem-minimal)
# Список файлов исходных текстов # Список файлов исходных текстов
set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/minimal.cpp) set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/minimal.cpp)
if(MYXLIB_BUILD_EXAMPLES)
# Путь поиска библиотек внутри проекта # Путь поиска библиотек внутри проекта
link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
link_directories(${CMAKE_BINARY_DIR}/src/myx/filesystem/lib)
# Цель для создания исполняемого файла # Цель для создания исполняемого файла
add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc}) add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc})
@ -29,22 +29,16 @@ add_format_sources(${TRGT} ${TRGT_cpp})
target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src) target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src)
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
target_compile_definitions(${TRGT} PUBLIC MYXLIB_BUILD_LIBRARIES)
if(NOT MYXLIB_HEADER_ONLY)
add_dependencies(${TRGT} base_static filesystem_static) add_dependencies(${TRGT} base_static filesystem_static)
target_link_libraries(${TRGT} myx-filesystem) target_link_libraries(${TRGT} myx-filesystem)
else()
target_compile_definitions(${TRGT} PUBLIC MYXLIB_HEADER_ONLY)
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
add_dependencies(${TRGT} base filesystem)
endif()
target_link_libraries(${TRGT} Qt5::Core) target_link_libraries(${TRGT} Qt5::Core)
target_link_libraries(${TRGT} Threads::Threads) target_link_libraries(${TRGT} Threads::Threads)
# Имя выходного файла для цели # Имя выходного файла для цели
set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME filesystem-minimal set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME filesystem-minimal)
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})
add_sanitizers(${TRGT}) add_sanitizers(${TRGT})
@ -54,3 +48,29 @@ add_dependencies(${TRGT} create_auxilary_symlinks)
# Правила для установки # Правила для установки
install(TARGETS ${TRGT} COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) install(TARGETS ${TRGT} COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
if(MYXLIB_BUILD_EXAMPLES_HO)
# Цель для создания исполняемого файла
add_executable(${TRGT}-ho ${TRGT_cpp} ${TRGT_qrc})
common_target_properties(${TRGT}-ho)
target_include_directories(${TRGT}-ho PRIVATE ${CMAKE_SOURCE_DIR}/src)
target_include_directories(${TRGT}-ho SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
add_dependencies(${TRGT}-ho base-header-only filesystem-header-only)
target_link_libraries(${TRGT}-ho Qt5::Core)
target_link_libraries(${TRGT}-ho Threads::Threads)
# Имя выходного файла для цели
set_target_properties(${TRGT}-ho PROPERTIES OUTPUT_NAME filesystem-minimal-ho)
add_sanitizers(${TRGT}-ho)
cotire(${TRGT}-ho)
add_dependencies(${TRGT}-ho create_auxilary_symlinks)
# Правила для установки
install(TARGETS ${TRGT}-ho COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()

View File

@ -1,4 +1,3 @@
// #include <myx/base/cmlib_private_config.hpp>
#include <myx/base/config.hpp> #include <myx/base/config.hpp>
#include <myx/filesystem/paths.hpp> #include <myx/filesystem/paths.hpp>

View File

@ -10,9 +10,10 @@ qt5_translation(
BASE_NAME ${TRGT} BASE_NAME ${TRGT}
LANGUAGES ru_RU) LANGUAGES ru_RU)
if(MYXLIB_BUILD_EXAMPLES)
# Путь поиска библиотек внутри проекта # Путь поиска библиотек внутри проекта
link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
link_directories(${CMAKE_BINARY_DIR}/src/myx/qt/lib)
# Цель для создания исполняемого файла # Цель для создания исполняемого файла
add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc}) add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc})
@ -37,20 +38,14 @@ add_format_sources(${TRGT} ${TRGT_cpp})
target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src) target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src)
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
if(NOT MYXLIB_HEADER_ONLY)
add_dependencies(${TRGT} base_static qt_static)
target_link_libraries(${TRGT} myx-qt)
else()
target_compile_definitions(${TRGT} PUBLIC MYXLIB_HEADER_ONLY) target_compile_definitions(${TRGT} PUBLIC MYXLIB_HEADER_ONLY)
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src) target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
add_dependencies(${TRGT} base qt) add_dependencies(${TRGT} base qt)
endif()
target_link_libraries(${TRGT} Qt5::Core) target_link_libraries(${TRGT} Qt5::Core)
# Имя выходного файла для цели # Имя выходного файла для цели
set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME qt-translators set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME qt-translators)
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})
add_sanitizers(${TRGT}) add_sanitizers(${TRGT})
@ -60,3 +55,29 @@ add_dependencies(${TRGT} create_auxilary_symlinks)
# Правила для установки # Правила для установки
install(TARGETS ${TRGT} COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) install(TARGETS ${TRGT} COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
if(MYXLIB_BUILD_EXAMPLES_HO)
# Цель для создания исполняемого файла
add_executable(${TRGT}-ho ${TRGT_cpp} ${TRGT_qrc})
common_target_properties(${TRGT}-ho)
target_include_directories(${TRGT}-ho PRIVATE ${CMAKE_SOURCE_DIR}/src)
target_include_directories(${TRGT}-ho SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
add_dependencies(${TRGT}-ho base-header-only qt-header-only)
target_link_libraries(${TRGT}-ho Qt5::Core)
target_link_libraries(${TRGT}-ho Threads::Threads)
# Имя выходного файла для цели
set_target_properties(${TRGT}-ho PROPERTIES OUTPUT_NAME qt-translators-ho)
add_sanitizers(${TRGT}-ho)
cotire(${TRGT}-ho)
add_dependencies(${TRGT}-ho create_auxilary_symlinks)
# Правила для установки
install(TARGETS ${TRGT}-ho COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()

View File

@ -42,7 +42,6 @@ if(MYXLIB_BUILD_LIBRARIES)
target_compile_definitions(${TRGT} PUBLIC MYXLIB_BUILD_LIBRARIES) target_compile_definitions(${TRGT} PUBLIC MYXLIB_BUILD_LIBRARIES)
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src) target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
cotire(${TRGT})
install(TARGETS ${TRGT}_static COMPONENT libs-dev ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(TARGETS ${TRGT}_static COMPONENT libs-dev ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
if(BUILD_SHARED_LIBS) if(BUILD_SHARED_LIBS)