初始化提交

This commit is contained in:
hesuicong committed 2025-07-21 10:12:51 +08:00
1 parent df61f3992d
commit 5c980c9b9b
292 files changed
+124105

No files matched your search

+88
View File
@@ -0,0 +1,88 @@
###########################################################
# Find BREAKPAD Library
#----------------------------------------------------------
#
## 1: Setup:
# The following variables are optionally searched for defaults
# BREAKPAD_DIR: Base directory of OpenCv tree to use.
#
## 2: Variable
# The following are set after configuration is done:
#
# BREAKPAD_FOUND
# BREAKPAD_INCLUDE_DIRS
# BREAKPAD_LIBS
# BREAKPAD_DEFINITIONS
#
#----------------------------------------------------------
find_path(BREAKPAD_DIR "include/breakpad/client/minidump_file_writer.h"
HINTS "${BREAKPAD_ROOT}" "$ENV{BREAKPAD_ROOT}" "$ENV{BREAKPAD_DIR}"
PATHS "$ENV{PROGRAMFILES}" "$ENV{PROGRAMW6432}" "/usr" "/usr/local" "/usr/share" "/usr/local/share" "/usr/lib/cmake" "/usr/local/lib/cmake" "/usr/lib/x86_64-linux-gnu/cmake"
PATH_SUFFIXES "BreakPad" "include"
DOC "Root directory of BREAKPAD library")
##====================================================
## Find BREAKPAD libraries
##----------------------------------------------------
if(EXISTS "${BREAKPAD_DIR}")
## Initiate the variable before the loop
set(BREAKPAD_LIBS "")
set(BREAKPAD_FOUND TRUE)
## Set all BREAKPAD component and their account into variables
set(BREAKPAD_LIB_COMPONENTS common crash_generation_client crash_generation_server exception_handler)
## Loop over each internal component and find its library file
foreach(LIBCOMP ${BREAKPAD_LIB_COMPONENTS})
find_library(BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG NAMES "${LIBCOMP}" PATHS "${BREAKPAD_DIR}/lib${PACKAGE_LIB_SUFFIX_DBG}" NO_DEFAULT_PATH)
find_library(BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE NAMES "${LIBCOMP}" PATHS "${BREAKPAD_DIR}/lib${PACKAGE_LIB_SUFFIX_REL}" NO_DEFAULT_PATH)
find_library(BREAKPAD_${LIBCOMP}_LIBRARY_ALL NAMES "${LIBCOMP}" PATH_SUFFIXES "breakpad")
#Remove the cache value
set(BREAKPAD_${LIBCOMP}_LIBRARY "" CACHE STRING "" FORCE)
#both debug/release
if(BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG AND BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE)
set(BREAKPAD_${LIBCOMP}_LIBRARY debug ${BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG} optimized ${BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE} CACHE STRING "" FORCE)
#only debug
elseif(BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG)
set(BREAKPAD_${LIBCOMP}_LIBRARY ${BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG} CACHE STRING "" FORCE)
#only release
elseif(BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE)
set(BREAKPAD_${LIBCOMP}_LIBRARY ${BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE} CACHE STRING "" FORCE)
#both debug/release
elseif(BREAKPAD_${LIBCOMP}_LIBRARY_ALL)
set(BREAKPAD_${LIBCOMP}_LIBRARY ${BREAKPAD_${LIBCOMP}_LIBRARY_ALL} CACHE STRING "" FORCE)
#no library found
else()
message("BREAKPAD component NOT found: ${LIBCOMP}")
set(BREAKPAD_FOUND FALSE)
endif()
#Add to the general list
if(BREAKPAD_${LIBCOMP}_LIBRARY)
set(BREAKPAD_LIBS ${BREAKPAD_LIBS} ${BREAKPAD_${LIBCOMP}_LIBRARY})
endif()
endforeach()
set(BREAKPAD_INCLUDE_DIRS "${BREAKPAD_DIR}/include" "${BREAKPAD_DIR}/include/breakpad")
message(STATUS "BREAKPAD found (include: ${BREAKPAD_INCLUDE_DIRS})")
else()
package_report_not_found(BREAKPAD "Please specify BREAKPAD directory using BREAKPAD_ROOT env. variable")
endif()
##====================================================
##====================================================
if(BREAKPAD_FOUND)
set(BREAKPAD_DIR "${BREAKPAD_DIR}" CACHE PATH "" FORCE)
mark_as_advanced(BREAKPAD_DIR)
endif()
##====================================================
+107
View File
@@ -0,0 +1,107 @@
# - Try to find Eigen3 lib
#
# This module supports requiring a minimum version, e.g. you can do
# find_package(Eigen3 3.1.2)
# to require version 3.1.2 or newer of Eigen3.
#
# Once done this will define
#
# EIGEN3_FOUND - system has eigen lib with correct version
# EIGEN3_INCLUDE_DIR - the eigen include directory
# EIGEN3_VERSION - eigen version
#
# and the following imported target:
#
# Eigen3::Eigen - The header-only Eigen library
#
# This module reads hints about search locations from
# the following environment variables:
#
# EIGEN3_ROOT
# EIGEN3_ROOT_DIR
# Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>
# Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr>
# Copyright (c) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
# Redistribution and use is allowed according to the terms of the 2-clause BSD license.
if(NOT Eigen3_FIND_VERSION)
if(NOT Eigen3_FIND_VERSION_MAJOR)
set(Eigen3_FIND_VERSION_MAJOR 2)
endif()
if(NOT Eigen3_FIND_VERSION_MINOR)
set(Eigen3_FIND_VERSION_MINOR 91)
endif()
if(NOT Eigen3_FIND_VERSION_PATCH)
set(Eigen3_FIND_VERSION_PATCH 0)
endif()
set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}")
endif()
macro(_eigen3_check_version)
file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header)
string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}")
set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}")
string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}")
set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}")
string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}")
set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}")
set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION})
if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})
set(EIGEN3_VERSION_OK FALSE)
else()
set(EIGEN3_VERSION_OK TRUE)
endif()
if(NOT EIGEN3_VERSION_OK)
message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, "
"but at least version ${Eigen3_FIND_VERSION} is required")
endif()
endmacro()
if (EIGEN3_INCLUDE_DIR)
# in cache already
_eigen3_check_version()
set(EIGEN3_FOUND ${EIGEN3_VERSION_OK})
set(Eigen3_FOUND ${EIGEN3_VERSION_OK})
else ()
# search first if an Eigen3Config.cmake is available in the system,
# if successful this would set EIGEN3_INCLUDE_DIR and the rest of
# the script will work as usual
find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE QUIET)
if(NOT EIGEN3_INCLUDE_DIR)
find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library
HINTS
ENV EIGEN3_ROOT
ENV EIGEN3_ROOT_DIR
PATHS
${CMAKE_INSTALL_PREFIX}/include
${KDE4_INCLUDE_DIR}
PATH_SUFFIXES eigen3 eigen
)
endif()
if(EIGEN3_INCLUDE_DIR)
_eigen3_check_version()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK)
mark_as_advanced(EIGEN3_INCLUDE_DIR)
endif()
if(EIGEN3_FOUND AND NOT TARGET Eigen3::Eigen)
add_library(Eigen3::Eigen INTERFACE IMPORTED)
set_target_properties(Eigen3::Eigen PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${EIGEN3_INCLUDE_DIR}")
endif()
+25
View File
@@ -0,0 +1,25 @@
###########################################################
# Find VCG Library
#----------------------------------------------------------
find_path(VCG_DIR "vcg/complex/complex.h"
HINTS "${VCG_ROOT}" "$ENV{VCG_ROOT}"
PATHS "$ENV{PROGRAMFILES}" "$ENV{PROGRAMW6432}" "/usr" "/usr/local" "/usr/share" "/usr/local/share" "/usr/lib/x86_64-linux-gnu/cmake"
PATH_SUFFIXES "vcg" "include"
DOC "Root directory of VCG library")
##====================================================
## Include VCG library
##----------------------------------------------------
if(EXISTS "${VCG_DIR}" AND NOT "${VCG_DIR}" STREQUAL "")
set(VCG_FOUND TRUE)
set(VCG_INCLUDE_DIRS ${VCG_DIR})
set(VCG_DIR "${VCG_DIR}" CACHE PATH "" FORCE)
mark_as_advanced(VCG_DIR)
set(VCG_INCLUDE_DIR ${VCG_DIR})
message(STATUS "VCG ${VCG_VERSION} found (include: ${VCG_INCLUDE_DIRS})")
else()
package_report_not_found(VCG "Please specify VCG directory using VCG_ROOT env. variable")
endif()
##====================================================