CMakeUserFindLibSVM: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
(Created page with 'File:FindLibSVM.cmake.jpg Back ----- # - Find LibSVM # # -- Library usage example : # # find_package (LibSVM 2.9.0) …')
 
(Replace content with link to new CMake community wiki)
 
(24 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[File:FindLibSVM.cmake.jpg]]
{{CMake/Template/Moved}}


[[CMake_User_Contributed_Macros|Back]]
This page has moved [https://gitlab.kitware.com/cmake/community/wikis/contrib/modules/FindLibSVM here].
-----
 
    # - Find 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 - library version
    #  LibSVM_MAJOR_VERSION
    #  LibSVM_MINOR_VERSION
    #  LibSVM_SUBMINOR_VERSION
    #
    #  ------------------------------------------------------------------
    #
    #  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
    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
        PATH
          /usr/include
          /usr/local/include
          /opt/local/include
          /sw/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)
      # version defined in svm.h since version 2.9
      set (LibSVM_MAJOR_VERSION 0)
      set (LibSVM_MINOR_VERSION 0)
      set (LibSVM_SUBMINOR_VERSION 0)
      if (LibSVM_INCLUDE_DIR)
        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
          /usr/lib
          /usr/local/lib
          /opt/local/lib
          /sw/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 ()
   
   
    # 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_VERSION
    )
    set (LibSVM_FOUND ${LIBSVM_FOUND})
   
   
    mark_as_advanced (
      LibSVM_LIBRARY
      LibSVM_LIBRARIES
      LibSVM_INCLUDE_DIR
      LibSVM_INCLUDE_DIRS
      LibSVM_VERSION
      LibSVM_MAJOR_VERSION
      LibSVM_MINOR_VERSION
      LibSVM_SUBMINOR_VERSION
    )
   
   
    # 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_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 ()
 
-----
[[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.