From 9f685bf45328e8a85859e4316984aabe35d4a15b Mon Sep 17 00:00:00 2001 From: dpasukhi Date: Sat, 26 Oct 2024 21:59:54 +0100 Subject: [PATCH] Configuration - Extend support Ubuntu packages #118 Draco, vtk and openvr now can be used from ubuntu packages Fixed issue for Clang with msvc lib detection --- adm/cmake/3rdparty_macro.cmake | 3 ++- adm/cmake/draco.cmake | 5 +++++ adm/cmake/occt_macros.cmake | 23 ++++++++++++++++------- adm/cmake/vtk.cmake | 2 +- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/adm/cmake/3rdparty_macro.cmake b/adm/cmake/3rdparty_macro.cmake index bb4962a6c6..ac8a0ea729 100644 --- a/adm/cmake/3rdparty_macro.cmake +++ b/adm/cmake/3rdparty_macro.cmake @@ -101,8 +101,9 @@ macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_CSF_NAME LIBRARY_NAME CMAKE_FIND_ROOT_PATH_BOTH NO_DEFAULT_PATH) else() + string(TOLOWER ${PRODUCT_NAME} LOW_CASE_PRODUCT_NAME) find_path (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR NAMES ${HEADER_NAME} - PATH_SUFFIXES include inc headers + PATH_SUFFIXES include inc headers ${LOW_CASE_PRODUCT_NAME} CMAKE_FIND_ROOT_PATH_BOTH) endif() endif() diff --git a/adm/cmake/draco.cmake b/adm/cmake/draco.cmake index cebc75df99..30533b64de 100644 --- a/adm/cmake/draco.cmake +++ b/adm/cmake/draco.cmake @@ -51,6 +51,11 @@ if (NOT 3RDPARTY_DRACO_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_DRACO_INCLUDE_DIR}" PATH_SUFFIXES "include" CMAKE_FIND_ROOT_PATH_BOTH NO_DEFAULT_PATH) + else() + find_path (3RDPARTY_DRACO_INCLUDE_DIR NAMES ${HEADER_NAMES} + PATHS ${3RDPARTY_DRACO_DIR} + PATH_SUFFIXES "include" + CMAKE_FIND_ROOT_PATH_BOTH) endif() endif() diff --git a/adm/cmake/occt_macros.cmake b/adm/cmake/occt_macros.cmake index 5b423275ad..711b61c10d 100644 --- a/adm/cmake/occt_macros.cmake +++ b/adm/cmake/occt_macros.cmake @@ -173,6 +173,17 @@ function (OCCT_ORIGIN_AND_PATCHED_FILES RELATIVE_PATH SEARCH_TEMPLATE RESULT) set (${RESULT} ${FOUND_FILES} PARENT_SCOPE) endfunction() +function (FILLUP_PRODUCT_SEARCH_TEMPLATE PRODUCT_NAME COMPILER COMPILER_BITNESS SEARCH_TEMPLATES) + list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*${COMPILER}.*${COMPILER_BITNESS}") + list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*[0-9.]+.*${COMPILER}.*${COMPILER_BITNESS}") + list (APPEND SEARCH_TEMPLATES "^[a-zA-Z]*[0-9]*-${lower_PRODUCT_NAME}[^a-zA-Z]*[0-9.]+.*${COMPILER}.*${COMPILER_BITNESS}") + list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*[0-9.]+.*${COMPILER_BITNESS}") + list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*.*${COMPILER_BITNESS}") + list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*[0-9.]+") + list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*") + set (SEARCH_TEMPLATES ${SEARCH_TEMPLATES} PARENT_SCOPE) +endfunction() + function (FIND_PRODUCT_DIR ROOT_DIR PRODUCT_NAME RESULT) OCCT_MAKE_COMPILER_SHORT_NAME() OCCT_MAKE_COMPILER_BITNESS() @@ -184,13 +195,11 @@ function (FIND_PRODUCT_DIR ROOT_DIR PRODUCT_NAME RESULT) elseif ("${lower_PRODUCT_NAME}" STREQUAL "tbb") list (APPEND SEARCH_TEMPLATES "^.*${lower_PRODUCT_NAME}.*") else() - list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*${COMPILER}.*${COMPILER_BITNESS}") - list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*[0-9.]+.*${COMPILER}.*${COMPILER_BITNESS}") - list (APPEND SEARCH_TEMPLATES "^[a-zA-Z]*[0-9]*-${lower_PRODUCT_NAME}[^a-zA-Z]*[0-9.]+.*${COMPILER}.*${COMPILER_BITNESS}") - list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*[0-9.]+.*${COMPILER_BITNESS}") - list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*.*${COMPILER_BITNESS}") - list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*[0-9.]+") - list (APPEND SEARCH_TEMPLATES "^[^a-zA-Z]*${lower_PRODUCT_NAME}[^a-zA-Z]*") + FILLUP_PRODUCT_SEARCH_TEMPLATE(${lower_PRODUCT_NAME} ${COMPILER} ${COMPILER_BITNESS} SEARCH_TEMPLATES) + if (WIN32 AND "${COMPILER}" STREQUAL "clang") + # for clang on Windows, search for "vc" as well + FILLUP_PRODUCT_SEARCH_TEMPLATE(${lower_PRODUCT_NAME} "vc" ${COMPILER_BITNESS} SEARCH_TEMPLATES) + endif() endif() SUBDIRECTORY_NAMES ("${ROOT_DIR}" SUBDIR_NAME_LIST) diff --git a/adm/cmake/vtk.cmake b/adm/cmake/vtk.cmake index a81cdf9bb2..f7fb6580bc 100644 --- a/adm/cmake/vtk.cmake +++ b/adm/cmake/vtk.cmake @@ -200,7 +200,7 @@ endif() if (3RDPARTY_VTK_INCLUDE_DIR AND EXISTS "${3RDPARTY_VTK_INCLUDE_DIR}") list (APPEND 3RDPARTY_INCLUDE_DIRS ${3RDPARTY_VTK_INCLUDE_DIR}) -else() +elseif (NOT VTK_FOUND) list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_VTK_INCLUDE_DIR) endif()