Improved dependency detection; also look for asio before attempting to compile.

This commit is contained in:
casey langen 2023-07-30 13:01:31 -07:00
parent 9965708858
commit 719fa0b3d1
4 changed files with 27 additions and 19 deletions

View File

@ -0,0 +1,20 @@
macro(find_vendor_library target_var library_name)
find_library(${target_var} NAMES ${library_name} PATHS ${VENDOR_LINK_DIRECTORIES} NO_DEFAULT_PATH NO_CACHE)
message(STATUS "[dependency-detection] ${BoldBlue}'${library_name}' library resolved to '${${target_var}}'${ColorReset}")
endmacro(find_vendor_library)
macro(find_header header_name)
find_path(TEMP ${header_name} HINTS ${PROJECT_INCLUDE_DIRECTORIES} REQUIRED NO_CACHE)
if (${TEMP} MATCHES "TEMP-NOTFOUND")
message(STATUS "[dependency-detection] ${BoldRed}'${header_name}' COULD NOT BE FOUND!${ColorReset}")
else()
message(STATUS "[dependency-detection] ${BoldBlue}'${header_name}' resolved to '${TEMP}'${ColorReset}")
endif()
unset(TEMP)
endmacro(find_library_and_header)
macro(find_library_and_header target_var library_name header_name)
find_library(${target_var} NAMES ${library_name} NO_CACHE)
message(STATUS "[dependency-detection] ${BoldBlue}'${library_name}' library resolved to '${${target_var}}'${ColorReset}")
find_header(${header_name})
endmacro(find_library_and_header)

View File

@ -1,17 +0,0 @@
macro(find_vendor_library target_var library_name)
find_library(${target_var} NAMES ${library_name} PATHS ${VENDOR_LINK_DIRECTORIES} NO_DEFAULT_PATH NO_CACHE)
message(STATUS "[find-vendor-library] ${BoldBlue}'${library_name}' library resolved to '${${target_var}}'${ColorReset}")
endmacro(find_vendor_library)
macro(find_library_and_header target_var library_name header_name)
find_library(${target_var} NAMES ${library_name} NO_CACHE)
message(STATUS "[find-library-and-header] ${BoldBlue}'${library_name}' library resolved to '${${target_var}}'${ColorReset}")
find_path(TEMP ${header_name} REQUIRED NO_CACHE)
if (${TEMP} MATCHES "TEMP-NOTFOUND")
message(STATUS "[find-library-and-header] ${BoldRed}'${header_name}' COULD NOT BE FOUND!${ColorReset}")
else()
message(STATUS "[find-library-and-header] ${BoldBlue}'${header_name}' resolved to '${TEMP}'${ColorReset}")
endif()
unset(TEMP)
endmacro(find_library_and_header)

View File

@ -27,7 +27,7 @@ include(AddDarwinSystemLibs)
include(AddLinuxSystemLibs) include(AddLinuxSystemLibs)
include(ConfigureCurses) include(ConfigureCurses)
include(ConfigureCompilerFlags) include(ConfigureCompilerFlags)
include(FindVendorLibrary) include(DependencyDetection)
if (NOT DEFINED ENV{HOMEBREW_PREFIX} AND NOT ${BUILD_STANDALONE} MATCHES "true") if (NOT DEFINED ENV{HOMEBREW_PREFIX} AND NOT ${BUILD_STANDALONE} MATCHES "true")
find_program(CCACHE_FOUND ccache) find_program(CCACHE_FOUND ccache)
@ -52,7 +52,9 @@ message(STATUS "[vendor-link-directories] ${VENDOR_LINK_DIRECTORIES}")
message(STATUS "[vendor-include-directories] ${VENDOR_INCLUDE_DIRECTORIES}") message(STATUS "[vendor-include-directories] ${VENDOR_INCLUDE_DIRECTORIES}")
message(STATUS "[os-system-libs] ${DEFAULT_OS_SYSTEM_LIBS}") message(STATUS "[os-system-libs] ${DEFAULT_OS_SYSTEM_LIBS}")
include_directories( list(
APPEND
PROJECT_INCLUDE_DIRECTORIES
"${musikcube_SOURCE_DIR}/src" "${musikcube_SOURCE_DIR}/src"
"${musikcube_SOURCE_DIR}/src/musikcore" "${musikcube_SOURCE_DIR}/src/musikcore"
"${musikcube_SOURCE_DIR}/src/musikcube" "${musikcube_SOURCE_DIR}/src/musikcube"
@ -60,6 +62,8 @@ include_directories(
"${musikcube_SOURCE_DIR}/src/3rdparty/include" "${musikcube_SOURCE_DIR}/src/3rdparty/include"
"${musikcube_SOURCE_DIR}/src/3rdparty/asio/asio/include") "${musikcube_SOURCE_DIR}/src/3rdparty/asio/asio/include")
include_directories(${PROJECT_INCLUDE_DIRECTORIES})
link_directories("${musikcube_SOURCE_DIR}/bin/plugins") link_directories("${musikcube_SOURCE_DIR}/bin/plugins")
# these are used to (1) disable the standalone ASIO from trying to use # these are used to (1) disable the standalone ASIO from trying to use

View File

@ -88,6 +88,7 @@ add_library(musikcore SHARED ${CORE_SOURCES})
set_target_properties(musikcore PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${musikcube_SOURCE_DIR}/bin) set_target_properties(musikcore PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${musikcube_SOURCE_DIR}/bin)
target_link_libraries(musikcore ${musikcube_LINK_LIBS}) target_link_libraries(musikcore ${musikcube_LINK_LIBS})
target_include_directories(musikcore BEFORE PRIVATE ${VENDOR_INCLUDE_DIRECTORIES}) target_include_directories(musikcore BEFORE PRIVATE ${VENDOR_INCLUDE_DIRECTORIES})
find_header(asio.hpp)
if (ENABLE_PCH MATCHES "true") if (ENABLE_PCH MATCHES "true")
message(STATUS "[musikcore] enabling precompiled headers") message(STATUS "[musikcore] enabling precompiled headers")