vendor: OpenCV 5.0.0 snapshot at 755e50675d97db9b7d449d8bd6b09888646f6c6e
This commit is contained in:
@@ -0,0 +1,169 @@
|
||||
|
||||
# Original FindJulia.cmake from https://github.com/QuantStack/xtensor-julia-cookiecutter/blob/master/%7B%7Bcookiecutter.github_project_name%7D%7D/cmake/FindJulia.cmake
|
||||
if(Julia_FOUND)
|
||||
return()
|
||||
endif()
|
||||
|
||||
####################
|
||||
# Julia Executable #
|
||||
####################
|
||||
|
||||
find_program(Julia_EXECUTABLE julia DOC "Julia executable")
|
||||
|
||||
#################
|
||||
# Julia Version #
|
||||
#################
|
||||
|
||||
if(Julia_EXECUTABLE)
|
||||
message(STATUS "Found Julia executable: " ${Julia_EXECUTABLE})
|
||||
|
||||
execute_process(
|
||||
COMMAND "${Julia_EXECUTABLE}" --startup-file=no --version
|
||||
OUTPUT_VARIABLE Julia_VERSION_STRING
|
||||
)
|
||||
else()
|
||||
return()
|
||||
endif()
|
||||
|
||||
string(
|
||||
REGEX REPLACE ".*([0-9]+\\.[0-9]+\\.[0-9]+).*" "\\1"
|
||||
Julia_VERSION_STRING "${Julia_VERSION_STRING}"
|
||||
)
|
||||
|
||||
MESSAGE(STATUS "Julia_VERSION_STRING: ${Julia_VERSION_STRING}")
|
||||
|
||||
##################
|
||||
# Julia Includes #
|
||||
##################
|
||||
|
||||
set(JULIA_HOME_NAME "Sys.BINDIR")
|
||||
if(${Julia_VERSION_STRING} VERSION_LESS "0.7.0")
|
||||
set(JULIA_HOME_NAME "JULIA_HOME")
|
||||
else()
|
||||
set(USING_LIBDL "using Libdl")
|
||||
endif()
|
||||
|
||||
if(DEFINED ENV{JULIA_INCLUDE_DIRS})
|
||||
set(Julia_INCLUDE_DIRS $ENV{JULIA_INCLUDE_DIRS}
|
||||
CACHE STRING "Location of Julia include files")
|
||||
elseif(Julia_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${Julia_EXECUTABLE} --startup-file=no -E "julia_include_dir = joinpath(match(r\"(.*)(bin)\",${JULIA_HOME_NAME}).captures[1],\"include\",\"julia\")\n
|
||||
if !isdir(julia_include_dir) # then we're running directly from build\n
|
||||
julia_base_dir_aux = splitdir(splitdir(${JULIA_HOME_NAME})[1])[1] # useful for running-from-build\n
|
||||
julia_include_dir = joinpath(julia_base_dir_aux, \"usr\", \"include\" )\n
|
||||
julia_include_dir *= \";\" * joinpath(julia_base_dir_aux, \"src\", \"support\" )\n
|
||||
julia_include_dir *= \";\" * joinpath(julia_base_dir_aux, \"src\" )\n
|
||||
end\n
|
||||
julia_include_dir"
|
||||
OUTPUT_VARIABLE Julia_INCLUDE_DIRS
|
||||
)
|
||||
|
||||
string(REGEX REPLACE "\"" "" Julia_INCLUDE_DIRS "${Julia_INCLUDE_DIRS}")
|
||||
string(REGEX REPLACE "\n" "" Julia_INCLUDE_DIRS "${Julia_INCLUDE_DIRS}")
|
||||
set(Julia_INCLUDE_DIRS ${Julia_INCLUDE_DIRS}
|
||||
CACHE PATH "Location of Julia include files")
|
||||
elseif(Julia_PREFIX)
|
||||
set(Julia_INCLUDE_DIRS ${Julia_PREFIX}/include/julia)
|
||||
endif()
|
||||
MESSAGE(STATUS "Julia_INCLUDE_DIRS: ${Julia_INCLUDE_DIRS}")
|
||||
|
||||
###################
|
||||
# Julia Libraries #
|
||||
###################
|
||||
|
||||
if(WIN32)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .a)
|
||||
endif()
|
||||
|
||||
if(Julia_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${Julia_EXECUTABLE} --startup-file=no -E "${USING_LIBDL}\nabspath(Libdl.dlpath((ccall(:jl_is_debugbuild, Cint, ()) != 0) ? \"libjulia-debug\" : \"libjulia\"))"
|
||||
OUTPUT_VARIABLE Julia_LIBRARY
|
||||
)
|
||||
|
||||
string(REGEX REPLACE "\"" "" Julia_LIBRARY "${Julia_LIBRARY}")
|
||||
string(REGEX REPLACE "\n" "" Julia_LIBRARY "${Julia_LIBRARY}")
|
||||
string(STRIP "${Julia_LIBRARY}" Julia_LIBRARY)
|
||||
|
||||
if(WIN32)
|
||||
get_filename_component(Julia_LIBRARY_DIR ${Julia_LIBRARY} DIRECTORY)
|
||||
get_filename_component(Julia_LIBRARY_DIR ${Julia_LIBRARY_DIR} DIRECTORY)
|
||||
find_library(win_Julia_LIBRARY
|
||||
NAMES libjulia.dll.a
|
||||
PATHS "${Julia_LIBRARY_DIR}/lib"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
set(Julia_LIBRARY "${win_Julia_LIBRARY}")
|
||||
endif()
|
||||
|
||||
set(Julia_LIBRARY "${Julia_LIBRARY}"
|
||||
CACHE PATH "Julia library")
|
||||
else()
|
||||
find_library(Julia_LIBRARY NAMES libjulia.${Julia_VERSION_STRING}.dylib julia libjulia libjulia.dll.a CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
|
||||
get_filename_component(Julia_LIBRARY_DIR ${Julia_LIBRARY} DIRECTORY)
|
||||
|
||||
MESSAGE(STATUS "Julia_LIBRARY_DIR: ${Julia_LIBRARY_DIR}")
|
||||
MESSAGE(STATUS "Julia_LIBRARY: ${Julia_LIBRARY}")
|
||||
|
||||
##############
|
||||
# JULIA_HOME #
|
||||
##############
|
||||
|
||||
if(Julia_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${Julia_EXECUTABLE} --startup-file=no -E "${JULIA_HOME_NAME}"
|
||||
OUTPUT_VARIABLE JULIA_HOME
|
||||
)
|
||||
|
||||
string(REGEX REPLACE "\"" "" JULIA_HOME "${JULIA_HOME}")
|
||||
string(REGEX REPLACE "\n" "" JULIA_HOME "${JULIA_HOME}")
|
||||
|
||||
MESSAGE(STATUS "JULIA_HOME: ${JULIA_HOME}")
|
||||
|
||||
###################
|
||||
# libLLVM version #
|
||||
###################
|
||||
|
||||
execute_process(
|
||||
COMMAND ${Julia_EXECUTABLE} --startup-file=no -E "Base.libllvm_version"
|
||||
OUTPUT_VARIABLE Julia_LLVM_VERSION
|
||||
)
|
||||
|
||||
string(REGEX REPLACE "\"" "" Julia_LLVM_VERSION "${Julia_LLVM_VERSION}")
|
||||
string(REGEX REPLACE "\n" "" Julia_LLVM_VERSION "${Julia_LLVM_VERSION}")
|
||||
|
||||
MESSAGE(STATUS "Julia_LLVM_VERSION: ${Julia_LLVM_VERSION}")
|
||||
endif()
|
||||
|
||||
##################################
|
||||
# Check for Existence of Headers #
|
||||
##################################
|
||||
|
||||
find_path(Julia_MAIN_HEADER julia.h HINTS ${Julia_INCLUDE_DIRS})
|
||||
|
||||
#######################################
|
||||
# Determine if we are on 32 or 64 bit #
|
||||
#######################################
|
||||
|
||||
if(Julia_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${Julia_EXECUTABLE} --startup-file=no -E "Sys.WORD_SIZE"
|
||||
OUTPUT_VARIABLE Julia_WORD_SIZE
|
||||
)
|
||||
string(REGEX REPLACE "\n" "" Julia_WORD_SIZE "${Julia_WORD_SIZE}")
|
||||
MESSAGE(STATUS "Julia_WORD_SIZE: ${Julia_WORD_SIZE}")
|
||||
endif()
|
||||
|
||||
###########################
|
||||
# FindPackage Boilerplate #
|
||||
###########################
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Julia
|
||||
REQUIRED_VARS Julia_LIBRARY Julia_LIBRARY_DIR Julia_INCLUDE_DIRS Julia_MAIN_HEADER Julia_EXECUTABLE
|
||||
VERSION_VAR Julia_VERSION_STRING
|
||||
FAIL_MESSAGE "Julia not found"
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
# ========================= julia =========================
|
||||
if(WITH_JULIA OR HAVE_JULIA)
|
||||
status("")
|
||||
status(" JULIA:" HAVE_JULIA THEN "YES" ELSE "NO")
|
||||
if(HAVE_JULIA)
|
||||
status(" Julia_EXECUTABLE:" ${Julia_EXECUTABLE})
|
||||
status(" JlCxx_DIR:" ${JlCxx_DIR})
|
||||
if(HAVE_JULIA MATCHES "YES")
|
||||
status(" JULIA_PKG_INSTALL_PATH:" ${JULIA_PKG_INSTALL_PATH_HOOK})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,18 @@
|
||||
OCV_OPTION(WITH_JULIA "Include Julia support (opencv_contrib)" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT AND NOT WIN32))
|
||||
|
||||
ocv_assert(OPENCV_INITIAL_PASS)
|
||||
|
||||
if(WITH_JULIA OR DEFINED Julia_FOUND)
|
||||
ocv_cmake_hook_append(STATUS_DUMP_EXTRA "${CMAKE_CURRENT_LIST_DIR}/hooks/STATUS_DUMP_EXTRA.cmake")
|
||||
endif()
|
||||
|
||||
# --- Julia ---
|
||||
if(WITH_JULIA AND NOT DEFINED Julia_FOUND)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindJulia.cmake)
|
||||
if(NOT Julia_FOUND)
|
||||
message(WARNING "Julia was not found. Disabling Julia bindings...")
|
||||
ocv_module_disable(julia)
|
||||
endif()
|
||||
|
||||
set(HAVE_JULIA ON)
|
||||
endif()
|
||||
Reference in New Issue
Block a user