127 lines
3.4 KiB
CMake
127 lines
3.4 KiB
CMake
# Based on the hackrf cmakefiles, in turn based on the libftdi cmake
|
|
|
|
cmake_minimum_required(VERSION 3.0)
|
|
|
|
if (MSVC)
|
|
include_directories(getopt)
|
|
add_definitions(/D _CRT_SECURE_NO_WARNINGS)
|
|
if (FIND_DEBUG)
|
|
add_definitions(/D FIND_DEBUG)
|
|
endif()
|
|
elseif (MINGW32)
|
|
set(CMAKE_SYSTEM_NAME Windows)
|
|
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
|
|
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
|
|
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
|
|
set(CMAKE_Fortran_COMPILER ${TOOLCHAIN_PREFIX}-gfortran)
|
|
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)
|
|
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
|
|
else()
|
|
add_definitions(-Wall)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
|
if (FIND_DEBUG)
|
|
add_definitions(-DFIND_DEBUG=1)
|
|
endif()
|
|
endif()
|
|
|
|
project(userspace-wifi C)
|
|
set(PACKAGE userspace-wifi)
|
|
include(${PROJECT_SOURCE_DIR}/cmake/set_release.cmake)
|
|
add_definitions(-DRELEASE="${RELEASE}")
|
|
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules)
|
|
|
|
set(prefix ${CMAKE_INSTALL_PREFIX})
|
|
|
|
if(MSVC)
|
|
find_package(PThread REQUIRED)
|
|
include_directories(${PTHREAD_INCLUDE_DIR})
|
|
set(INT_THREAD_LIBS ${PTHREADS_LIBRARY})
|
|
|
|
find_package(LibUSB-1.0 REQUIRED)
|
|
include_directories(${LIBUSB_1_INCLUDE_DIR})
|
|
link_directories(${LIBUSB_1_LIBRARY_DIR})
|
|
set(INT_LIBUSB_LIBS ${LIBUSB_1_LIBRARIES})
|
|
|
|
set (firmwaredir .)
|
|
elseif(MINGW32)
|
|
# find_package(PThread REQUIRED)
|
|
# include_directories(${PTHREAD_INCLUDE_DIR})
|
|
# set(INT_THREAD_LIBS ${PTHREADS_LIBRARY})
|
|
|
|
#find_package(LibUSB-1.0 REQUIRED)
|
|
#include_directories(${LIBUSB_1_INCLUDE_DIR})
|
|
#link_directories(${LIBUSB_1_LIBRARY_DIR})
|
|
#set(INT_LIBUSB_LIBS ${LIBUSB_1_LIBRARIES})
|
|
|
|
find_package(Threads REQUIRED)
|
|
set(INT_THREAD_LIBS ${THREADS_LIBRARY})
|
|
|
|
include_directories("${VCPKG_HOME}/installed/x64-mingw-static/include/libusb-1.0")
|
|
set(INT_LIBUSB_LIBS "${VCPKG_HOME}/installed/x64-mingw-static/lib/libusb-1.0.a")
|
|
|
|
set (firmwaredir .)
|
|
else()
|
|
find_package(Threads REQUIRED)
|
|
set(INT_THREAD_LIBS ${THREADS_LIBRARY})
|
|
|
|
find_package(USB1 REQUIRED)
|
|
include_directories(${LIBUSB_INCLUDE_DIR})
|
|
set(INT_LIBUSB_LIBS ${LIBUSB_LIBRARIES})
|
|
|
|
set (firmwaredir \${prefix}/share/wifiuserspace/firmware)
|
|
|
|
endif()
|
|
|
|
|
|
add_subdirectory(libwifiuserspace)
|
|
|
|
include_directories(${PROJECT_SOURCE_DIR}/libwifiuserspace)
|
|
|
|
SET(TOOLS
|
|
wifi_coconut
|
|
)
|
|
|
|
if (MSVC)
|
|
add_library(libgetopt_static STATIC
|
|
getopt/getopt.c
|
|
)
|
|
endif()
|
|
|
|
if (MINGW32)
|
|
add_library(libpthread STATIC IMPORTED)
|
|
else()
|
|
LIST(APPEND TOOLS_LINK_LIBS ${INT_THREAD_LIBS})
|
|
endif()
|
|
|
|
LIST(APPEND TOOLS_LINK_LIBS wifiuserspace-static)
|
|
LIST(APPEND TOOLS_LINK_LIBS ${INT_LIBUSB_LIBS})
|
|
LIST(APPEND TOOLS_LINK_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
|
|
|
include_directories(${PROJECT_SOURCE_DIR})
|
|
|
|
if (MSVC)
|
|
LIST(APPEND TOOLS_LINK_LIBS libgetopt_static)
|
|
|
|
add_custom_target(copydlls)
|
|
endif()
|
|
|
|
add_executable(wifi_coconut
|
|
wifi_coconut.c
|
|
wifi_coconut/wifi_coconut.c
|
|
)
|
|
|
|
foreach(tool ${TOOLS})
|
|
target_link_libraries(${tool} ${TOOLS_LINK_LIBS})
|
|
install(TARGETS ${tool} RUNTIME DESTINATION bin)
|
|
endforeach(tool)
|
|
|
|
INSTALL(
|
|
DIRECTORY ${PROJECT_SOURCE_DIR}/libwifiuserspace/firmware/
|
|
DESTINATION ${firmwaredir}
|
|
)
|
|
|