CMakeUserFindLibSVM: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
(Replace content with link to new CMake community wiki)
 
(19 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@phimeca.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)
      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/libsvm/?" "\\1" LIBSVM_ROOT_DIR "${LIBSVM_INCLUDE_DIR}")
 
      # try to guess root dir from library dir
      elseif (LIBSVM_LIBRARY)
        get_filename_component (_LIBRARY_DIR ${LIBSVM_LIBRARY} PATH)
        string (REGEX REPLACE "(.*)/lib[0-9]*/?" "\\1" LIBSVM_ROOT_DIR "${_LIBRARY_DIR}")
      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.