CMakeUserFindLibSVM: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
(Replace content with link to new CMake community wiki)
 
(18 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[CMake_User_Contributed_Macros|Back]]
{{CMake/Template/Moved}}
-----
[[File:FindLibSVM.cmake]]
-----
#  -- Try to find LibSVM
  #
  #  LibSVM is a Library for Support Vector Machines
  #  available at http://www.csie.ntu.edu.tw/~cjlin/libsvm/
  #
  #  ------------------------------------------------------------------
  #
  #  -- Library usage example :
  #
  #  find_package (LibSVM 2.9.0)
  #  if (LIBSVM_FOUND)
  #    include_directories (${LIBSVM_INCLUDE_DIRS})
  #    add_executable (foo foo.cpp)
  #    target_link_libraries (foo ${LIBSVM_LIBRARIES})
  #  endif ()
  #
  #  -- Show some debug information :
  #
  #  set (LIBSVM_DEBUG TRUE)
  #  find_package (LibSVM)
  #
  #  -------------------------------------------------------------------
  #
  #  -- This module defines :
  #
  #  LIBSVM_FOUND - the system has LibSVM
  #  LIBSVM_INCLUDE_DIR - where to find svm.h
  #  LIBSVM_INCLUDE_DIRS libsvm includes
  #  LIBSVM_LIBRARY - where to find the LibSVM library
  #  LIBSVM_LIBRARIES - aditional libraries
  #  LIBSVM_VERSION - version
  #  LIBSVM_MAJOR_VERSION - major version
  #  LIBSVM_MINOR_VERSION - minor version
  #  LIBSVM_SUBMINOR_VERSION - subminor version
  #  LIBSVM_ROOT_DIR - root dir (ex. /usr/local)
  #
  #  ------------------------------------------------------------------
  #
  #  Copyright (c) 2010 Julien Schueller <schueller at phimeca dot com>
  #
  #  Redistribution and use is allowed according to the terms of the New
  #  BSD license.
  #  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
  #


  # check for math header
This page has moved [https://gitlab.kitware.com/cmake/community/wikis/contrib/modules/FindLibSVM here].
  if (NOT HAVE_MATH_H)
    include (CheckIncludeFile)
    check_include_file (math.h HAVE_MATH_H)
  endif ()
 
 
  # set LIBSVM_INCLUDE_DIR
  if (NOT LIBSVM_INCLUDE_DIR)
    find_path (LIBSVM_INCLUDE_DIR
      NAMES
        svm.h
      PATHS
        ${LIBSVM_ROOT_DIR}/include
      PATH_SUFFIXES
        libsvm
        libsvm-2.0/libsvm
      DOC
        "LibSVM include directory"
    )
  endif ()
 
 
  # set LIBSVM_INCLUDE_DIR
  if (NOT LIBSVM_INCLUDE_DIRS)
    set (LIBSVM_INCLUDE_DIRS ${LIBSVM_INCLUDE_DIR})
  endif ()
 
 
  # version
  if (NOT LIBSVM_VERSION)
    set (LIBSVM_MAJOR_VERSION 0)
    set (LIBSVM_MINOR_VERSION 0)
    set (LIBSVM_SUBMINOR_VERSION 0)
    if (LIBSVM_INCLUDE_DIR)
      # LIBSVM_VERSION macro defined in svm.h since version 2.8.9
      file (STRINGS "${LIBSVM_INCLUDE_DIR}/svm.h" _VERSION_STRING REGEX ".*LIBSVM_VERSION.*")
      if (_VERSION_STRING)
        string (REGEX REPLACE ".*_VERSION[ ]+([0-9]+)" "\\1" _VERSION_NUMBER "${_VERSION_STRING}")
        math (EXPR LIBSVM_MAJOR_VERSION "${_VERSION_NUMBER} / 100")
        math (EXPR LIBSVM_MINOR_VERSION "(${_VERSION_NUMBER} % 100 ) / 10")
        math (EXPR LIBSVM_SUBMINOR_VERSION "${_VERSION_NUMBER} % 10")
      endif ()
    endif ()
    set (LIBSVM_VERSION "${LIBSVM_MAJOR_VERSION}.${LIBSVM_MINOR_VERSION}.${LIBSVM_SUBMINOR_VERSION}")
  endif ()
 
 
 
  # check version
  set (_LIBSVM_VERSION_MATCH TRUE)
  set (_REQUIRED_VERSION "${LibSVM_FIND_VERSION_MAJOR}.${LibSVM_FIND_VERSION_MINOR}.${LibSVM_FIND_VERSION_PATCH}")
  if (LibSVM_FIND_VERSION AND _VERSION_STRING)
    if (LibSVM_FIND_VERSION_EXACT)
      if ("${_REQUIRED_VERSION}" VERSION_EQUAL "${LIBSVM_VERSION}")
      else()
        set (_LIBSVM_VERSION_MATCH FALSE)
      endif ()
    else ()
      if ("${_REQUIRED_VERSION}" VERSION_GREATER "${LIBSVM_VERSION}")
        set (_LIBSVM_VERSION_MATCH FALSE)
      endif ()
    endif ()
  endif ()
 
 
  # set LIBSVM_LIBRARY
  if(NOT LIBSVM_LIBRARY)
    find_library (LIBSVM_LIBRARY
      NAMES
        svm
      PATHS
        ${LIBSVM_ROOT_DIR}/lib
      DOC
        "LibSVM library location"
    )
  endif ()
 
 
  # set LIBSVM_LIBRARIES
  if (NOT LIBSVM_LIBRARIES)
    set (LIBSVM_LIBRARIES ${LIBSVM_LIBRARY})
 
    # link with math library on unix
    if (UNIX)
      list (APPEND LIBSVM_LIBRARIES "-lm")
    endif ()
  endif ()
 
 
  # root dir
  if (NOT LIBSVM_ROOT_DIR)
    # try to guess root dir from include dir
    if (LIBSVM_INCLUDE_DIR)
      string (REGEX REPLACE "(.*)/include.*" "\\1" LIBSVM_ROOT_DIR ${LIBSVM_INCLUDE_DIR})
 
    # try to guess root dir from library dir
    elseif (LIBSVM_LIBRARY)
      string (REGEX REPLACE "(.*)/lib[/|32|64].*" "\\1" LIBSVM_ROOT_DIR ${LIBSVM_LIBRARY})
    endif ()
  endif ()
 
 
  # debug
  if (LIBSVM_DEBUG)
    message (STATUS "LIBSVM_LIBRARY: ${LIBSVM_LIBRARY}")
    message (STATUS "LIBSVM_LIBRARIES: ${LIBSVM_LIBRARIES}")
    message (STATUS "LIBSVM_INCLUDE_DIR: ${LIBSVM_INCLUDE_DIR}")
    message (STATUS "LIBSVM_INCLUDE_DIRS: ${LIBSVM_INCLUDE_DIRS}")
    message (STATUS "LIBSVM_ROOT_DIR: ${LIBSVM_ROOT_DIR}")
    message (STATUS "LIBSVM_VERSION: ${LIBSVM_VERSION}")
    message (STATUS "LIBSVM_MAJOR_VERSION: ${LIBSVM_MAJOR_VERSION}")
    message (STATUS "LIBSVM_MINOR_VERSION: ${LIBSVM_MINOR_VERSION}")
    message (STATUS "LIBSVM_SUBMINOR_VERSION: ${LIBSVM_SUBMINOR_VERSION}")
  endif ()
 
 
  # handle REQUIRED and QUIET options
  include (FindPackageHandleStandardArgs)
  find_package_handle_standard_args (LibSVM DEFAULT_MSG LIBSVM_LIBRARY
    _LIBSVM_VERSION_MATCH
    HAVE_MATH_H
    LIBSVM_INCLUDE_DIR
    LIBSVM_INCLUDE_DIRS
    LIBSVM_LIBRARIES
    LIBSVM_ROOT_DIR
    LIBSVM_VERSION
  )
 
 
  mark_as_advanced (
    LIBSVM_LIBRARY
    LIBSVM_LIBRARIES
    LIBSVM_INCLUDE_DIR
    LIBSVM_INCLUDE_DIRS
    LIBSVM_ROOT_DIR
    LIBSVM_VERSION
  )
 
-----
[[CMake_User_Contributed_Macros|Back]]
 
{{CMake/Template/Footer}}
[[Category:FindModules]]

Latest revision as of 15:41, 30 April 2018


The CMake community Wiki has moved to the Kitware GitLab Instance.

This page has moved here.