38 Commits

Author SHA1 Message Date
Thomas Petazzoni
5307a62d25 CMakeLists.txt: allow disabling Python support (#2051)
* CMakeLists.txt: allow disabling Python support

In some cases, even if Swig is found and Python3 is found, it may not
be desirable to build Python support in avrdude, so this commit adds
a FORCE_DISABLE_PYTHON_SUPPORTT option to be able to explicitly 
disable the Python support.

To preserve existing behavior, this option defaults to disabled (OFF).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Co-authored-by: Xiaofan Chen <xiaofanc@gmail.com>
2026-05-03 20:43:48 +08:00
stefanrueger
f2b81b0689 Set version to 8.1 2025-06-23 11:03:44 +02:00
Hans Ulrich Niedermann
cb53a34ff1 Add extra version information to avrdude output
Some downstream projects build avrdude and want to add their
own version information to the avrdude version to distinguish
their builds from others.

This adds a clean way to do that without needing to patch the
avrdude sources, for both cmake and automake based builds:

    cmake -DEXTRA_VERSION:STRING=-arduino.1-rc1
    ../configure EXTRA_VERSION=-arduino.1-rc1

After building avrdude, the last line of "avrdude -?" will now
look similar to the following, depending on whether you are
building an avrdude git checkout or an avrdude release tarball:

    avrdude version 8.0-20240901-arduino.1-rc1 (30e19f23), https://github.com/avrdudes/avrdude
    avrdude version 8.1-arduino.1-rc1 (30e19f23), https://github.com/avrdudes/avrdude
2024-10-10 13:40:22 +02:00
Stefan Rueger
d8c8cf1379 Update version to 8.0 2024-08-24 21:51:00 +01:00
Hans Ulrich Niedermann
16d7d0bbcb ci: Build parallel port code on supported systems
Build parallel port code on supported systems

Unsupported systems are:

  * Windows operating system
  * MacOS operating system

This means the CI can test

  * native Linux builds (yes, even for arm systems)

Untested at this time are the BSDs.

Removes the dysfunctional Windows (since Windows XP)  parallel port code,
and has the buildsystems fail Windows builds if parallel port builds are
requested (HAVE_PARPORT or --enable-parport).

https://github.com/avrdudes/avrdude/pull/1874#issuecomment-2275762550
2024-08-24 15:38:17 +02:00
Joerg Wunsch
a7eaf6f81f Merge remote-tracking branch 'upstream/main' into swig_libavrdude 2024-08-10 21:46:08 +02:00
Hans Ulrich Niedermann
cec14ad8ed cmake: LIB_NCURSES also accept pdcurses
The Fedora mingw environment comes with pdcurses, which states

> Note that ncurses is not available for MinGW / Windows.
> Applications which need curses functionality can use this
> package, provided they don't use any of the extensions
> specific to ncurses.

This at least allows the cross compile build to succeed, I
have not tested the executable under Windows or Wine.
2024-08-01 03:25:03 +02:00
Joerg Wunsch
fcfe327c8a Merge remote-tracking branch 'upstream/main' into swig_libavrdude 2024-04-28 17:11:08 +02:00
Michael Heimpold
fcf8cd7a03 Improve cmake status messages during libgpiod detection
The standard cmake messages of pkg_check_modules might be confusing
when being used as here, i.e. when searching for the highest compatible
version.

So suppress these standard messages and print manual ones instead.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2024-04-27 22:06:58 +02:00
Michael Heimpold
6a75ac7057 linuxgpio: add gpiod_line_set_direction_input helper for libgpiod v1.4 support (refs #1782)
This ancient libgpiod version is still shipped on Ubuntu 20.04 LTS.
Add support for it by adding another helper.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2024-04-26 22:01:52 +02:00
Michael Heimpold
ea701bc2f5 Add support for libgpiod v2+ API
libgpiod in version 2 or above introduced an API change which results
in compile error with the current code.

This commit adds some glue magic for the newer versions and
tries to detect the used libgpiod version based on the information
available in the pkg-config files.

At the moment, this eliminates the possibility to statically link
against this library.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2024-04-14 23:45:26 +02:00
Joerg Wunsch
e39ad2c1ca Our probe is actually for SWIG + Python3
Indicate so in the final configuration overview.
2024-04-07 23:20:59 +02:00
Joerg Wunsch
9a8d5c1328 Replace PYTHONLIBS by PYTHON3 in CMakeLists.txt
https://cmake.org/cmake/help/latest/module/FindPython3.html
2024-04-07 09:55:15 +02:00
Joerg Wunsch
4f455c6043 First tiny little steps towards a SWIG "hello world"
Config file handling and basic list handling is there.
2024-03-03 21:37:08 +01:00
Hans Ulrich Niedermann
f8bb5619b8 Use committer date for commit date and year
Quoting CMakeLists.txt: "[...] of latest commit"

"Latest commit" is better served by using the committer date %cd
instead of the author date %ad: The author date could be some time
last year with committer date being today.

Note this affects both autotools and cmake buildsystems to keep
the generated version message dates and year in sync.
2024-02-19 06:10:33 +01:00
stefanrueger
e599214c9d Update version info for 7.3 2024-02-07 23:54:45 +13:00
Hans Ulrich Niedermann
0b9d1bc1ff Detect dynamic readline and serialport for USE_STATIC_LIBS
Detect the dynamic libraries for libreadline and libserialport
even when building avrdude with USE_STATIC_LIBS.

Fixes: https://github.com/avrdudes/avrdude/issues/1624
2024-01-18 14:47:17 +01:00
Hans
0be6568b76 Add serial port discovery (#1498)
Co-authored-by: Stefan Rueger <stefan.rueger@urclocks.com>
2023-09-22 23:21:57 +01:00
Joerg Wunsch
cb9e7e49e6 Prepare for version 7.2
* finalize NEWS for that version
* bump version info for autotools and CMake
2023-07-19 22:30:19 +02:00
Sebastian Kuzminsky
a7bf91c86d cmake: find & use libgpiod 2023-03-16 08:53:00 -06:00
Marius Greuel
61dccf4ad1 CMake: Add ncurses library when readline is present 2023-01-20 20:42:12 +01:00
Marius Greuel
c98a49bfcd CMake: Remove LIB_LIBHID from configuration 2023-01-20 20:41:36 +01:00
Joerg Wunsch
2e0be1e1ae This is AVRDUDE release 7.1 2023-01-08 22:28:14 +01:00
Stefan Rueger
5642cecb82 Merge pull request #1269 from mariusgreuel/pr-update-windows-hidapi
Update to latest MSVC fork of hidapi to include bug fixes
2023-01-05 17:39:02 +00:00
Marius Greuel
6e1f14bc7a Update to latest MSVC fork of hidapi to include bug fixes 2023-01-05 18:21:01 +01:00
Marius Greuel
7b3cfd2724 Add readline library replacement for MSVC 2023-01-04 08:02:48 +01:00
Marius Greuel
a138ec259f CMake: Rename option USE_EXTERNAL to USE_EXTERNAL_LIBS 2022-12-27 16:35:36 +01:00
Marius Greuel
7a5883b75d CMake: Bump minimum version to 3.14 2022-12-27 16:31:28 +01:00
Marius Greuel
f220656e0b CMake: For MSVC builds, use latest libftdi for Windows 2022-12-27 13:35:52 +01:00
mcuee
c9357132fa Print HAVE_LIBREADLINE status 2022-11-19 17:22:04 +08:00
Marius Greuel
c633255c01 CMake: Add initial support for texinfo docs 2022-09-04 16:55:16 +02:00
Marius Greuel
07ed4746be CMake: Fix dependency chain between avrdude.conf.in and avrdude.conf 2022-09-04 16:19:01 +02:00
Fabrice Fontaine
17509d2ef4 CMakeLists.txt: fix build without C++
Fix the following build failure without a C++ compiler:

CMake Error at CMakeLists.txt:24 (project):
  No CMAKE_CXX_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2022-06-26 21:35:42 +02:00
Marius Greuel
65bb41f8e9 CMake: Add build option to select static or shared libraries 2022-05-11 21:08:05 +02:00
Marius Greuel
0ea4b08b2f CMake: If installed, use static version of libreadline for MSYS2 2022-05-11 21:02:03 +02:00
Joerg Wunsch
d6347f4187 Correctly name the release in CMakeLists.txt as well 2022-05-08 14:00:53 +02:00
Marius Greuel
e31be88ce0 Add LIB_LIBHID to CMake project to fix MinGW build issue 2022-02-18 19:58:13 +01:00
Yegor Yefremov
acee6afa4e CMake: split configuration in two files
The main CMakeLists.txt file in the project's root directory takes
care of the main project settings like project name and version,
handling the options, finding dependencies, etc.

The src/CMakeLists.txt handles options that are necessary to build
libavrdude library and avrdude binary.
2022-01-23 21:22:07 +01:00