mirror of
https://github.com/mariusgreuel/avrdude.git
synced 2025-09-28 06:55:27 +00:00
Merge pull request #783 from mariusgreuel/pr-improve-cmake
Improve CMake project
This commit is contained in:
@@ -48,15 +48,19 @@ set(AVRDUDE_EXTERNAL_PATH "${PROJECT_SOURCE_DIR}/external")
|
|||||||
find_package(FLEX)
|
find_package(FLEX)
|
||||||
if(FLEX_FOUND)
|
if(FLEX_FOUND)
|
||||||
FLEX_TARGET(Parser lexer.l "${PROJECT_BINARY_DIR}/lexer.c")
|
FLEX_TARGET(Parser lexer.l "${PROJECT_BINARY_DIR}/lexer.c")
|
||||||
|
|
||||||
|
if (FLEX_VERSION VERSION_GREATER_EQUAL 2.5.9)
|
||||||
|
set(HAVE_YYLEX_DESTROY 1)
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
message(SEND_ERROR "This CMake project requires flex, which is not installed on your system." )
|
message(SEND_ERROR "This CMake project requires 'flex', which is not installed on your system." )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(BISON)
|
find_package(BISON)
|
||||||
if(BISON_FOUND)
|
if(BISON_FOUND)
|
||||||
BISON_TARGET(Parser config_gram.y "${PROJECT_BINARY_DIR}/config_gram.c" DEFINES_FILE "${PROJECT_BINARY_DIR}/config_gram.h")
|
BISON_TARGET(Parser config_gram.y "${PROJECT_BINARY_DIR}/config_gram.c" DEFINES_FILE "${PROJECT_BINARY_DIR}/config_gram.h")
|
||||||
else()
|
else()
|
||||||
message(SEND_ERROR "This CMake project requires bison, which is not installed on your system." )
|
message(SEND_ERROR "This CMake project requires 'bison', which is not installed on your system." )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# =====================================
|
# =====================================
|
||||||
@@ -121,6 +125,11 @@ if(HAVE_LIBUSB_1_0)
|
|||||||
set(LIB_LIBUSB_1_0 ${HAVE_LIBUSB_1_0})
|
set(LIB_LIBUSB_1_0 ${HAVE_LIBUSB_1_0})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# FreeBSD's library 'libusb' supports both the libusb-0.1 and libusb-1.0 API.
|
||||||
|
if (HAVE_LIBUSB AND CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||||
|
set(HAVE_LIBUSB_1_0 ${HAVE_LIBUSB})
|
||||||
|
endif()
|
||||||
|
|
||||||
find_library(HAVE_LIBUSB_WIN32 NAMES libusb0.a usb0)
|
find_library(HAVE_LIBUSB_WIN32 NAMES libusb0.a usb0)
|
||||||
|
|
||||||
if(HAVE_LIBUSB OR HAVE_LIBUSB_1_0 OR HAVE_LIBUSB_WIN32)
|
if(HAVE_LIBUSB OR HAVE_LIBUSB_1_0 OR HAVE_LIBUSB_WIN32)
|
||||||
@@ -182,6 +191,8 @@ endif()
|
|||||||
# Setup target specific options
|
# Setup target specific options
|
||||||
# =====================================
|
# =====================================
|
||||||
|
|
||||||
|
add_compile_definitions(CONFIG_DIR=\"${CONFIG_DIR}\")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(HAVE_LIBWS2_32 1)
|
set(HAVE_LIBWS2_32 1)
|
||||||
set(EXTRA_WINDOWS_SOURCES "${PROJECT_BINARY_DIR}/windows.rc")
|
set(EXTRA_WINDOWS_SOURCES "${PROJECT_BINARY_DIR}/windows.rc")
|
||||||
@@ -318,8 +329,22 @@ message(STATUS "----------------------")
|
|||||||
# Configure files
|
# Configure files
|
||||||
# =====================================
|
# =====================================
|
||||||
|
|
||||||
|
macro(configure_option option)
|
||||||
|
if(${${option}})
|
||||||
|
string(REGEX REPLACE "(.*)@${option}_BEGIN@(.*)@${option}_END@(.*)" "\\1\\2\\3" conf_file "${conf_file}")
|
||||||
|
else()
|
||||||
|
string(REGEX REPLACE "(.*)@${option}_BEGIN@(.*)@${option}_END@(.*)" "\\1\\3" conf_file "${conf_file}")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
file(READ avrdude.conf.in conf_file)
|
||||||
|
configure_option(HAVE_PARPORT)
|
||||||
|
configure_option(HAVE_LINUXGPIO)
|
||||||
|
configure_option(HAVE_LINUXSPI)
|
||||||
|
file(WRITE "${PROJECT_BINARY_DIR}/avrdude.conf.in" "${conf_file}")
|
||||||
|
|
||||||
configure_file(cmake_config.h.in ac_cfg.h)
|
configure_file(cmake_config.h.in ac_cfg.h)
|
||||||
configure_file(avrdude.conf.in avrdude.conf)
|
configure_file("${PROJECT_BINARY_DIR}/avrdude.conf.in" avrdude.conf)
|
||||||
configure_file(avrdude.spec.in avrdude.spec)
|
configure_file(avrdude.spec.in avrdude.spec)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
configure_file(windows.rc.in windows.rc)
|
configure_file(windows.rc.in windows.rc)
|
||||||
|
@@ -22,8 +22,6 @@
|
|||||||
|
|
||||||
#define VERSION "@PROJECT_VERSION@"
|
#define VERSION "@PROJECT_VERSION@"
|
||||||
|
|
||||||
#define CONFIG_DIR "${CONFIG_DIR}"
|
|
||||||
|
|
||||||
/* Options */
|
/* Options */
|
||||||
|
|
||||||
/* Linux sysfs GPIO support enabled */
|
/* Linux sysfs GPIO support enabled */
|
||||||
|
Reference in New Issue
Block a user