sshivaji / polyglot

Polyglot chess opening book program
GNU General Public License v2.0
22 stars 16 forks source link

cmake #2

Open rapgro opened 9 years ago

rapgro commented 9 years ago

Please provide support for cmake. The following CMakeLists.txt sample is used in Fedora.

cmake_minimum_required (VERSION 2.6)
project (polyglot)

set(EXE polyglot)

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR})
find_package(LevelDB REQUIRED)
include_directories(LevelDB_INCLUDE_PATH)

aux_source_directory(. SOURCES)

add_executable(${EXE} ${SOURCES})

target_link_libraries(${EXE} ${LevelDB_LIBRARY})

To find leveldb, someone may use the following snippet named FindLevelDB.cmake:

# Find libleveldb.a - key/value storage system

find_path(LevelDB_INCLUDE_PATH NAMES leveldb/db.h)
find_library(LevelDB_LIBRARY NAMES libleveldb.a libleveldb.lib libleveldb.so)

if(LevelDB_INCLUDE_PATH AND LevelDB_LIBRARY)
  set(LevelDB_FOUND TRUE)
endif(LevelDB_INCLUDE_PATH AND LevelDB_LIBRARY)

if(LevelDB_FOUND)
  if(NOT LevelDB_FIND_QUIETLY)
    message(STATUS "Found LevelDB: ${LevelDB_LIBRARY}")
  endif(NOT LevelDB_FIND_QUIETLY)
else(LevelDB_FOUND)
  if(LevelDB_FIND_REQUIRED)
    message(FATAL_ERROR "Could not find leveldb library.")
  endif(LevelDB_FIND_REQUIRED)
endif(LevelDB_FOUND)
rapgro commented 8 years ago

It's easier to simply use pkgconfig to not rely on cmake support of leveldb.

cmake_minimum_required (VERSION 2.6)
project (polyglot)

set(EXE polyglot)

find_package(PkgConfig)
pkg_search_module(LEVELDB REQUIRED leveldb)
include_directories(LEVELDB_INCLUDE_PATH)

aux_source_directory(. SOURCES)

add_executable(${EXE} ${SOURCES})

target_link_libraries(${EXE} ${LEVELDB_LIBRARIES})