From 2f8f230f617c4de1a2bd75352f4777f3592a1916 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 3 Sep 2010 15:38:12 +0200 Subject: [PATCH] build: Added support to find argp on BSD. --- cmake/Modules/FindArgp.cmake | 60 ++++++++++++++++++++++++++++++++++++ tests/CMakeLists.txt | 6 +++- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 cmake/Modules/FindArgp.cmake diff --git a/cmake/Modules/FindArgp.cmake b/cmake/Modules/FindArgp.cmake new file mode 100644 index 00000000..aa228557 --- /dev/null +++ b/cmake/Modules/FindArgp.cmake @@ -0,0 +1,60 @@ +# - Try to find Argp +# Once done this will define +# +# ARGP_FOUND - system has Argp +# ARGP_INCLUDE_DIRS - the Argp include directory +# ARGP_LIBRARIES - Link these to use Argp +# ARGP_DEFINITIONS - Compiler switches required for using Argp +# +# Copyright (c) 2010 Andreas Schneider +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (ARGP_LIBRARIES AND ARGP_INCLUDE_DIRS) + # in cache already + set(ARGP_FOUND TRUE) +else (ARGP_LIBRARIES AND ARGP_INCLUDE_DIRS) + + find_path(ARGP_INCLUDE_DIR + NAMES + argp.h + PATHS + /usr/include + /usr/local/include + /opt/local/include + /sw/include + ) + + find_library(ARGP_LIBRARY + NAMES + argp + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + set(ARGP_INCLUDE_DIRS + ${ARGP_INCLUDE_DIR} + ) + + if (ARGP_LIBRARY) + set(ARGP_LIBRARIES + ${ARGP_LIBRARIES} + ${ARGP_LIBRARY} + ) + endif (ARGP_LIBRARY) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Argp DEFAULT_MSG ARGP_LIBRARIES ARGP_INCLUDE_DIRS) + + # show the ARGP_INCLUDE_DIRS and ARGP_LIBRARIES variables only in the advanced view + mark_as_advanced(ARGP_INCLUDE_DIRS ARGP_LIBRARIES) + +endif (ARGP_LIBRARIES AND ARGP_INCLUDE_DIRS) + diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 29986631..64811e29 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,18 +1,22 @@ project(tests C) +if (${CMAKE_SYSTEM_NAME} MATCHES "(OpenBSD|FreeBSD)") + find_package(Argp) +endif (${CMAKE_SYSTEM_NAME} MATCHES "(OpenBSD|FreeBSD)") set(TORTURE_LIBRARY torture) include_directories( ${LIBSSH_PUBLIC_INCLUDE_DIRS} ${CHECK_INCLUDE_DIRS} + ${ARGP_INCLUDE_DIRS} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) # create test library add_library(${TORTURE_LIBRARY} SHARED torture.c cmdline.c) -target_link_libraries(${TORTURE_LIBRARY} ${CHECK_LIBRARIES} ${LIBSSH_STATIC_LIBRARY} ${LIBSSH_LINK_LIBRARIES}) +target_link_libraries(${TORTURE_LIBRARY} ${CHECK_LIBRARIES} ${LIBSSH_STATIC_LIBRARY} ${LIBSSH_LINK_LIBRARIES} ${ARGP_LIBRARIES}) set(TEST_TARGET_LIBRARIES ${SUPPORT_LIBRARY} ${LIBSSH_LINK_LIBRARIES})