From 105ed96f5f9ee304d1fef7450273a4598e23942e Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Thu, 24 Jun 2021 10:39:43 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=D0=BC=D0=BE=D0=B4=D1=83?= =?UTF-8?q?=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmake/cmlib | 2 +- cmake/find | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/cmlib b/cmake/cmlib index baa5792..ffa6262 160000 --- a/cmake/cmlib +++ b/cmake/cmlib @@ -1 +1 @@ -Subproject commit baa57922b4dd9b6c27c01dedb316c8c2df8a906e +Subproject commit ffa62626701c20ac850346590a5aa94c9e40db81 diff --git a/cmake/find b/cmake/find index bb640e3..d8c5378 160000 --- a/cmake/find +++ b/cmake/find @@ -1 +1 @@ -Subproject commit bb640e3cf2f287643db784df519d23ddf0a6f1f4 +Subproject commit d8c537801a89dc39bc1ee8c51ad8de8c03dcd67e From 3d3690ca64e8e7cfbc19d0ecefa35d83ac286b96 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Thu, 24 Jun 2021 11:36:53 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=A6=D0=B5=D0=BB=D1=8C=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B3=D0=BE=D0=BB=D0=BE=D0=B2=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index d8dbca3..e723f27 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,9 @@ add_subdirectory(src/myx/core) add_subdirectory(src/myx/filesystem) add_subdirectory(src/myx/qt) +# Цель, используемая только для установки заголовочных файлов без компиляции проекта +add_custom_target(myxlib-install-headers COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=base-dev -P + "${CMAKE_BINARY_DIR}/cmake_install.cmake") # Примеры if(MYXLIB_BUILD_EXAMPLES) add_subdirectory(examples/core) From 7396f77054104c378451d0066707c925f4643fd8 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Thu, 24 Jun 2021 11:38:58 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9C=D0=BE=D0=B4=D1=83=D0=BB=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B0=20?= =?UTF-8?q?=D1=81=20=D0=BF=D0=BE=D0=BC=D0=BE=D1=89=D1=8C=D1=8E=20CMake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmake/FindMyxlib.cmake | 48 +++++++++++++++++++---------- cmake/FindMyxlibThirdparty.cmake | 52 ++++++++++++++++++++++++-------- 2 files changed, 71 insertions(+), 29 deletions(-) diff --git a/cmake/FindMyxlib.cmake b/cmake/FindMyxlib.cmake index 9827bc4..74058c2 100644 --- a/cmake/FindMyxlib.cmake +++ b/cmake/FindMyxlib.cmake @@ -1,21 +1,37 @@ -set(MYXLIB_PREFIX "" CACHE PATH "The path to the previx of an myxlib installation") +if(NOT MYXLIB_PREFIX STREQUAL CMAKE_BINARY_DIR) + set(MYXLIB_PREFIX + "" + CACHE PATH "The path to the previx of an myxlib installation") -find_path(MYXLIB_INCLUDE_DIRS NAMES myx/core/config.hpp PATHS ${MYXLIB_PREFIX}/include) -find_library(MYXLIB_QT_LIBRARY NAMES myx-qt PATHS ${MYXLIB_PREFIX}/lib) -find_library(MYXLIB_FILESYSTEM_LIBRARY NAMES myx-filesystem PATHS ${MYXLIB_PREFIX}/lib) + find_path( + MYXLIB_INCLUDE_DIRS + NAMES myx/core/config.hpp + PATHS ${MYXLIB_PREFIX}/include) + find_library( + MYXLIB_QT_LIBRARY + NAMES myx-qt + PATHS ${MYXLIB_PREFIX}/lib) + find_library( + MYXLIB_FILESYSTEM_LIBRARY + NAMES myx-filesystem + PATHS ${MYXLIB_PREFIX}/lib) -if(MYXLIB_INCLUDE_DIRS AND MYXLIB_QT_LIBRARY AND MYXLIB_FILESYSTEM_LIBRARY) - get_filename_component(MYXLIB_LIBRARY_DIR ${MYXLIB_QT_LIBRARY} DIRECTORY CACHE) - set(MYXLIB_FOUND TRUE) -endif() - -if(MYXLIB_FOUND) - if(NOT MYXLIB_FIND_QUIETLY) - MESSAGE(STATUS "Found myxlib") + if(MYXLIB_INCLUDE_DIRS + AND MYXLIB_QT_LIBRARY + AND MYXLIB_FILESYSTEM_LIBRARY) + get_filename_component(MYXLIB_LIBRARY_DIR ${MYXLIB_QT_LIBRARY} DIRECTORY + CACHE) + set(MYXLIB_FOUND TRUE) endif() - set(HAVE_MYXLIB 1) -elseif(MYXLIB_FOUND) - if(MYXLIB_FIND_REQUIRED) - message(FATAL_ERROR "Could not find myxlib") + + if(MYXLIB_FOUND) + if(NOT MYXLIB_FIND_QUIETLY) + message(STATUS "Found myxlib") + endif() + set(HAVE_MYXLIB 1) + elseif(MYXLIB_FOUND) + if(MYXLIB_FIND_REQUIRED) + message(FATAL_ERROR "Could not find myxlib") + endif() endif() endif() diff --git a/cmake/FindMyxlibThirdparty.cmake b/cmake/FindMyxlibThirdparty.cmake index c9e6664..9a8d2df 100644 --- a/cmake/FindMyxlibThirdparty.cmake +++ b/cmake/FindMyxlibThirdparty.cmake @@ -1,14 +1,40 @@ -ExternalProject_Add( - myxlib - SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/myxlib - INSTALL_DIR ${CMAKE_BINARY_DIR} - DOWNLOAD_COMMAND "" - CONFIGURE_COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR} ${CMLIB_EXT_PROJ_DEFAULT_ARGS} - BUILD_COMMAND true - ) +# Подключение внешних проектов +include(ExternalProject) -set(MYXLIB_PREFIX ${CMAKE_BINARY_DIR} CACHE FILEPATH "" FORCE) -set(MYXLIB_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "" FORCE) -set(MYXLIB_LIBRARY_DIR ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} CACHE PATH "" FORCE) -set(MYXLIB_QT_LIBRARY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-qt.a CACHE FILEPATH "" FORCE) -set(MYXLIB_FILESYSTEM_LIBRARY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-filesystem.a CACHE FILEPATH "" FORCE) +# cmake-format: off +list(APPEND _ext_project_args + myxlib + SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/myxlib + INSTALL_DIR ${CMAKE_BINARY_DIR} + DOWNLOAD_COMMAND "" + CONFIGURE_COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" + -DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR} + ${CMLIB_EXT_PROJ_DEFAULT_ARGS} + ) + +if(MyxlibThirdparty_FIND_COMPONENTS STREQUAL "headers") + list(APPEND _ext_project_args + BUILD_COMMAND true + INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} myxlib-install-headers) +endif() +ExternalProject_Add(${_ext_project_args}) +unset(_ext_project_args) + +set(MYXLIB_IS_EXTERNAL_PROJECT ON CACHE BOOL "" FORCE) +# cmake-format: on + +set(MYXLIB_PREFIX + ${CMAKE_BINARY_DIR} + CACHE FILEPATH "" FORCE) +set(MYXLIB_INCLUDE_DIRS + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR} + CACHE PATH "" FORCE) +set(MYXLIB_LIBRARY_DIR + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} + CACHE PATH "" FORCE) +set(MYXLIB_QT_LIBRARY + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-qt.a + CACHE FILEPATH "" FORCE) +set(MYXLIB_FILESYSTEM_LIBRARY + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/libmyx-filesystem.a + CACHE FILEPATH "" FORCE) From 7d0c2f68d6501fb6b10860739c9ac482e5d97769 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Wed, 30 Jun 2021 10:48:29 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=D0=BC=D0=BE=D0=B4=D1=83?= =?UTF-8?q?=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmake/find | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/find b/cmake/find index d8c5378..e54359d 160000 --- a/cmake/find +++ b/cmake/find @@ -1 +1 @@ -Subproject commit d8c537801a89dc39bc1ee8c51ad8de8c03dcd67e +Subproject commit e54359de0e879a596921dc18def27660f9f05ed2 From 35ad2e1db8e4d5aa424862a32eb262f18b562a98 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Wed, 30 Jun 2021 16:54:16 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=D0=BC=D0=BE=D0=B4=D1=83?= =?UTF-8?q?=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmake/find | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/find b/cmake/find index e54359d..022a282 160000 --- a/cmake/find +++ b/cmake/find @@ -1 +1 @@ -Subproject commit e54359de0e879a596921dc18def27660f9f05ed2 +Subproject commit 022a2826375efcc7aefc6b661c8a77a592322566