cmake_minimum_required(VERSION 3.20) project(ingenic_usbboot C) set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h PATH_SUFFIXES libusb-1.0 ) find_library(LIBUSB_LIBRARY NAMES usb-1.0 libusb-1.0 ) if(NOT LIBUSB_INCLUDE_DIR OR NOT LIBUSB_LIBRARY) message(FATAL_ERROR "libusb-1.0 was not found. Install libusb-1.0-dev on Linux or " "libusb through vcpkg on Windows.") endif() set(USBBOOT_SOURCES usbboot.c) if(WIN32) list(APPEND USBBOOT_SOURCES getopt_compat.c) endif() add_executable(usbboot ${USBBOOT_SOURCES}) target_include_directories(usbboot PRIVATE ${LIBUSB_INCLUDE_DIR}) target_link_libraries(usbboot PRIVATE ${LIBUSB_LIBRARY}) if(MSVC) target_compile_definitions(usbboot PRIVATE _CRT_SECURE_NO_WARNINGS) endif() install(TARGETS usbboot RUNTIME DESTINATION . LIBRARY DESTINATION . ARCHIVE DESTINATION .) install(FILES spl.bin uboot.bin README.md DESTINATION .)