diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt new file mode 100644 index 00000000..874163f8 --- /dev/null +++ b/host/CMakeLists.txt @@ -0,0 +1,21 @@ +#top dir cmake project for libhackrf + tools + +cmake_minimum_required(VERSION 2.8) +project (hackrf_all) + +add_subdirectory(libhackrf) +add_subdirectory(hackrf-tools) + +######################################################################## +# Create uninstall target +######################################################################## + +configure_file( + ${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake +@ONLY) + + +add_custom_target(uninstall + ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake +) diff --git a/host/hackrf-tools/cmake_uninstall.cmake.in b/host/cmake/cmake_uninstall.cmake.in similarity index 100% rename from host/hackrf-tools/cmake_uninstall.cmake.in rename to host/cmake/cmake_uninstall.cmake.in diff --git a/host/hackrf-tools/FindLIBHACKRF.cmake b/host/cmake/modules/FindLIBHACKRF.cmake similarity index 100% rename from host/hackrf-tools/FindLIBHACKRF.cmake rename to host/cmake/modules/FindLIBHACKRF.cmake diff --git a/host/libhackrf/FindThreads.cmake b/host/cmake/modules/FindThreads.cmake similarity index 100% rename from host/libhackrf/FindThreads.cmake rename to host/cmake/modules/FindThreads.cmake diff --git a/host/hackrf-tools/FindUSB1.cmake b/host/cmake/modules/FindUSB1.cmake similarity index 100% rename from host/hackrf-tools/FindUSB1.cmake rename to host/cmake/modules/FindUSB1.cmake diff --git a/host/hackrf-tools/CMakeLists.txt b/host/hackrf-tools/CMakeLists.txt index 0db0e51b..8bf2a068 100644 --- a/host/hackrf-tools/CMakeLists.txt +++ b/host/hackrf-tools/CMakeLists.txt @@ -21,39 +21,43 @@ # Based heavily upon the libftdi cmake setup. +cmake_minimum_required(VERSION 2.8) project(hackrf-tools C) set(MAJOR_VERSION 0) set(MINOR_VERSION 1) set(PACKAGE hackrf-tools) set(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION}) set(VERSION ${VERSION_STRING}) -set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}") - -cmake_minimum_required(VERSION 2.8) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake/modules) if(MSVC) -include_directories( getopt) +include_directories(getopt) else() add_definitions(-Wall) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu90") endif() -find_package(USB1 REQUIRED) -include_directories(${LIBUSB_INCLUDE_DIR}) - +if(NOT libhackrf_SOURCE_DIR) find_package(LIBHACKRF REQUIRED) include_directories(${LIBHACKRF_INCLUDE_DIR}) +else() +include_directories(${libhackrf_SOURCE_DIR}/src) +endif() add_subdirectory(src) ######################################################################## # Create uninstall target ######################################################################## + +if(NOT hackrf_all_SOURCE_DIR) configure_file( - ${CMAKE_SOURCE_DIR}/cmake_uninstall.cmake.in + ${PROJECT_SOURCE_DIR}/../cmake/cmake_uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake @ONLY) + add_custom_target(uninstall ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake ) +endif() diff --git a/host/hackrf-tools/src/CMakeLists.txt b/host/hackrf-tools/src/CMakeLists.txt index 88df5c5f..373e36b4 100644 --- a/host/hackrf-tools/src/CMakeLists.txt +++ b/host/hackrf-tools/src/CMakeLists.txt @@ -50,22 +50,22 @@ install(TARGETS hackrf_cpldjtag RUNTIME DESTINATION ${INSTALL_DEFAULT_BINDIR}) add_executable(hackrf_info hackrf_info.c) install(TARGETS hackrf_info RUNTIME DESTINATION ${INSTALL_DEFAULT_BINDIR}) +if(NOT libhackrf_SOURCE_DIR) include_directories(${LIBHACKRF_INCLUDE_DIR}) - -target_link_libraries(hackrf_max2837 ${LIBHACKRF_LIBRARIES}) -target_link_libraries(hackrf_si5351c ${LIBHACKRF_LIBRARIES}) -target_link_libraries(hackrf_transfer ${LIBHACKRF_LIBRARIES}) -target_link_libraries(hackrf_rffc5071 ${LIBHACKRF_LIBRARIES}) -target_link_libraries(hackrf_spiflash ${LIBHACKRF_LIBRARIES}) -target_link_libraries(hackrf_cpldjtag ${LIBHACKRF_LIBRARIES}) -target_link_libraries(hackrf_info ${LIBHACKRF_LIBRARIES}) +LIST(APPEND TOOLS_LINK_LIBS ${LIBHACKRF_LIBRARIES}) +else() +LIST(APPEND TOOLS_LINK_LIBS hackrf) +endif() if(MSVC) -target_link_libraries(hackrf_max2837 libgetopt_static) -target_link_libraries(hackrf_si5351c libgetopt_static) -target_link_libraries(hackrf_transfer libgetopt_static) -target_link_libraries(hackrf_rffc5071 libgetopt_static) -target_link_libraries(hackrf_spiflash libgetopt_static) -target_link_libraries(hackrf_cpldjtag libgetopt_static) -target_link_libraries(hackrf_info libgetopt_static) +LIST(APPEND TOOLS_LINK_LIBS libgetopt_static) endif() + + +target_link_libraries(hackrf_max2837 ${TOOLS_LINK_LIBS}) +target_link_libraries(hackrf_si5351c ${TOOLS_LINK_LIBS}) +target_link_libraries(hackrf_transfer ${TOOLS_LINK_LIBS}) +target_link_libraries(hackrf_rffc5071 ${TOOLS_LINK_LIBS}) +target_link_libraries(hackrf_spiflash ${TOOLS_LINK_LIBS}) +target_link_libraries(hackrf_cpldjtag ${TOOLS_LINK_LIBS}) +target_link_libraries(hackrf_info ${TOOLS_LINK_LIBS}) diff --git a/host/libhackrf/CMakeLists.txt b/host/libhackrf/CMakeLists.txt index 1bb94072..4bfc7d8d 100644 --- a/host/libhackrf/CMakeLists.txt +++ b/host/libhackrf/CMakeLists.txt @@ -21,15 +21,14 @@ # Based heavily upon the libftdi cmake setup. +cmake_minimum_required(VERSION 2.8) project(libhackrf C) set(MAJOR_VERSION 0) set(MINOR_VERSION 1) set(PACKAGE libhackrf) set(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION}) set(VERSION ${VERSION_STRING}) -set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}") - -cmake_minimum_required(VERSION 2.8) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake/modules) if(MSVC) set(THREADS_USE_PTHREADS_WIN32 true) @@ -48,11 +47,13 @@ add_subdirectory(src) ######################################################################## # Create uninstall target ######################################################################## +if(NOT hackrf_all_SOURCE_DIR) configure_file( - ${CMAKE_SOURCE_DIR}/cmake_uninstall.cmake.in + ${PROJECT_SOURCE_DIR}/../cmake/cmake_uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake @ONLY) add_custom_target(uninstall ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake ) +endif() \ No newline at end of file diff --git a/host/libhackrf/FindUSB1.cmake b/host/libhackrf/FindUSB1.cmake deleted file mode 100644 index 0cbf8022..00000000 --- a/host/libhackrf/FindUSB1.cmake +++ /dev/null @@ -1,38 +0,0 @@ -# - Try to find the freetype library -# Once done this defines -# -# LIBUSB_FOUND - system has libusb -# LIBUSB_INCLUDE_DIR - the libusb include directory -# LIBUSB_LIBRARIES - Link these to use libusb - -# Copyright (c) 2006, 2008 Laurent Montel, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - - -if (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) - - # in cache already - set(LIBUSB_FOUND TRUE) - -else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) - IF (NOT WIN32) - # use pkg-config to get the directories and then use these values - # in the FIND_PATH() and FIND_LIBRARY() calls - find_package(PkgConfig) - pkg_check_modules(PC_LIBUSB libusb-1.0) - ENDIF(NOT WIN32) - - FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h - PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}) - - FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0 - PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}) - - include(FindPackageHandleStandardArgs) - FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR) - - MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES) - -endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) \ No newline at end of file diff --git a/host/libhackrf/cmake_uninstall.cmake.in b/host/libhackrf/cmake_uninstall.cmake.in deleted file mode 100644 index 9ae1ae4b..00000000 --- a/host/libhackrf/cmake_uninstall.cmake.in +++ /dev/null @@ -1,32 +0,0 @@ -# http://www.vtk.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F - -IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") -ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - -FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) -STRING(REGEX REPLACE "\n" ";" files "${files}") -FOREACH(file ${files}) - MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") - IF(EXISTS "$ENV{DESTDIR}${file}") - EXEC_PROGRAM( - "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" - OUTPUT_VARIABLE rm_out - RETURN_VALUE rm_retval - ) - IF(NOT "${rm_retval}" STREQUAL 0) - MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") - ENDIF(NOT "${rm_retval}" STREQUAL 0) - ELSEIF(IS_SYMLINK "$ENV{DESTDIR}${file}") - EXEC_PROGRAM( - "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" - OUTPUT_VARIABLE rm_out - RETURN_VALUE rm_retval - ) - IF(NOT "${rm_retval}" STREQUAL 0) - MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") - ENDIF(NOT "${rm_retval}" STREQUAL 0) - ELSE(EXISTS "$ENV{DESTDIR}${file}") - MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") - ENDIF(EXISTS "$ENV{DESTDIR}${file}") -ENDFOREACH(file)