Compare commits

...

12 Commits

Author SHA1 Message Date
Terence Noone
196d7d0170
Merge 5634b678f3 into 1fb33da291 2024-12-11 14:38:12 +11:00
Ben V. Brown
1fb33da291
Merge pull request #60 from barracuda156/darwin
parse_file.h: include sys/types.h
2024-12-11 14:33:11 +11:00
Ben V. Brown
17f6234a4a
Merge pull request #62 from barracuda156/static_assert
blisp_struct.h: use _Static_assert for pre-C23 compatibility
2024-12-11 14:32:28 +11:00
Ben V. Brown
108c387d31
Merge pull request #71 from ia/checkout-v4
* workflows/build.yml: update checkout to v4 since v3 is deprecated

* workflows/build.yml: update upload-artifact to v4 since v3 is deprecated

* workflows/build.yml: remove extra space in the end of the lines
2024-12-11 14:25:01 +11:00
Ivan Zorin
ebae66c392 workflows/build.yml: remove extra space in the end of the lines 2024-12-03 02:32:38 +03:00
Ivan Zorin
c2fc20452c workflows/build.yml: update upload-artifact to v4 since v3 is deprecated 2024-12-03 02:31:26 +03:00
Ivan Zorin
39388c6b2c workflows/build.yml: update checkout to v4 since v3 is deprecated 2024-12-03 02:10:27 +03:00
Terence Noone
5634b678f3
Fix linking with argtable3
CMake interpreted `argtable3` to mean add `-largtable3` rather than to
use the imported argtable3 target. This worked when using the bundled
library, but broke with native libraries.
2024-03-03 00:46:22 -05:00
Terence Noone
8dbb58353b
Do not build for both arm64 and x86_84 on macOS.
While this might work when using bundled libraries, this breaks with
system libraries as they are all compiled for arm64. Also, why would you
need to compile an x86_64 version on arm64, and vise versa.
2024-03-03 00:41:37 -05:00
Terence Noone
f1fcdb9587
Use new find module for libserialport
This new find module will replace the old logic used to locate a native
copy of libserialport. THe old code didn't work on macOS, and was pretty
messy.
2024-03-03 00:41:29 -05:00
Sergey Fedorov
be86373d37 blisp_struct.h: define static_assert when undefined to _Static_assert 2024-01-06 16:03:05 +08:00
Sergey Fedorov
81faf3f213 parse_file.h: include sys/types.h
Fixes: https://github.com/pine64/blisp/issues/59
2024-01-05 22:23:53 +08:00
6 changed files with 103 additions and 17 deletions

View File

@ -24,7 +24,7 @@ jobs:
run: run:
shell: cmd shell: cmd
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
with: with:
submodules: 'recursive' submodules: 'recursive'
- uses: lukka/get-cmake@latest - uses: lukka/get-cmake@latest
@ -35,7 +35,7 @@ jobs:
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release cmake --build . --config Release
- name: Upload results - name: Upload results
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: blips-windows-x86_64.zip name: blips-windows-x86_64.zip
path: | path: |
@ -45,7 +45,7 @@ jobs:
build-macos: build-macos:
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
with: with:
submodules: 'recursive' submodules: 'recursive'
- uses: lukka/get-cmake@latest - uses: lukka/get-cmake@latest
@ -56,7 +56,7 @@ jobs:
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . cmake --build .
- name: Upload results - name: Upload results
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: blips-apple-universal.zip name: blips-apple-universal.zip
path: | path: |
@ -66,7 +66,7 @@ jobs:
build-linux: build-linux:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
with: with:
submodules: 'recursive' submodules: 'recursive'
- uses: lukka/get-cmake@latest - uses: lukka/get-cmake@latest
@ -77,12 +77,12 @@ jobs:
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . cmake --build .
- name: Upload results - name: Upload results
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: blips-linux-x86_64.zip name: blips-linux-x86_64.zip
path: | path: |
build/tools/blisp/blisp build/tools/blisp/blisp
if-no-files-found: error if-no-files-found: error
build-linux-alternative-arch: build-linux-alternative-arch:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -99,7 +99,7 @@ jobs:
- arch: riscv64 - arch: riscv64
distro: ubuntu_latest distro: ubuntu_latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
with: with:
submodules: 'recursive' submodules: 'recursive'
- uses: uraimo/run-on-arch-action@v2 - uses: uraimo/run-on-arch-action@v2
@ -149,9 +149,9 @@ jobs:
echo "Produced artifact at /artifacts/${artifact_name}" echo "Produced artifact at /artifacts/${artifact_name}"
- name: Upload results - name: Upload results
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: blisp-linux-${{ matrix.arch }}.zip name: blisp-linux-${{ matrix.arch }}.zip
path: | path: |
artifacts/blisp-* artifacts/blisp-*
if-no-files-found: error if-no-files-found: error

View File

@ -1,5 +1,6 @@
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
# set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE)
project(blisp C) project(blisp C)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11)
@ -42,11 +43,10 @@ set_target_properties(libblisp_static PROPERTIES
OUTPUT_NAME "blisp") OUTPUT_NAME "blisp")
if(BLISP_USE_SYSTEM_LIBRARIES) if(BLISP_USE_SYSTEM_LIBRARIES)
find_package(PkgConfig) find_package(Libserialport REQUIRED)
pkg_search_module(LIBSERIALPORT REQUIRED libserialport) target_link_libraries(libblisp PUBLIC Libserialport::Libserialport)
target_link_libraries(libblisp PUBLIC ${LIBSERIALPORT_LIBRARIES}) target_link_libraries(libblisp_static PUBLIC Libserialport::Libserialport)
target_link_libraries(libblisp_static PUBLIC ${LIBSERIALPORT_LIBRARIES}) target_include_directories(libblisp_obj PUBLIC ${Libserialport_INCLUDE_DIRS})
target_include_directories(libblisp_obj PUBLIC ${LIBSERIALPORT_INCLUDE_DIRS})
else() else()
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
target_sources(libblisp_obj PRIVATE target_sources(libblisp_obj PRIVATE

View File

@ -0,0 +1,79 @@
# SPDX-License-Identifier: MIT
#[=======================================================================[.rst:
FindLibserialport
-------
Finds the sigrok serial port library (``libserialport``)
Imported Targets
^^^^^^^^^^^^^^^^
This module defines the following imported targets, if found:
``Libserialport::Libserialport``
The serialport library
Result Variables
^^^^^^^^^^^^^^^^
This module will define the following variables:
``Libserialport_FOUND``
True if the system has the serialport library.
``Libserialport_VERSION``
The version of the serialport library which was found.
``Libserialport_INCLUDE_DIRS``
Include directories needed to use ``libserialport``.
``Libserialport_LIBRARIES``
Libraries needed to link to ``libserialport``.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``Libserialport_INCLUDE_DIR``
The directory containing ``libserialport.h``.
``Libserialport_LIBRARY``
The path to the ``libserialport`` library.
#]=======================================================================]
find_package(PkgConfig)
pkg_check_modules(PC_Libserialport QUIET libserialport)
find_path(Libserialport_INCLUDE_DIR
NAMES libserialport.h
PATHS "${PC_Libserialport_INCLUDE_DIRS}"
)
find_library(Libserialport_LIBRARY
NAMES serialport
HINTS "${PC_Libserialport_LIBRARY_DIRS}"
)
set(Foo_VERSION ${PC_Foo_VERSION})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libserialport
FOUND_VAR Libserialport_FOUND
REQUIRED_VARS
Libserialport_LIBRARY
Libserialport_INCLUDE_DIR
VERSION_VAR Libserialport_VERSION
)
if(Libserialport_FOUND)
set(Libserialport_LIBRARIES ${Libserialport_LIBRARY})
set(Libserialport_INCLUDE_DIRS ${Libserialport_INCLUDE_DIR})
set(Libserialport_DEFINITIONS ${PC_Liberialport_CFLAGS_OTHER})
endif()
if(Libserialport_FOUND AND NOT TARGET Libserialport::Libserialport)
add_library(Libserialport::Libserialport UNKNOWN IMPORTED)
set_target_properties(Libserialport::Libserialport PROPERTIES
IMPORTED_LOCATION "${Libserialport_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_Libserialport_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${Libserialport_INCLUDE_DIR}"
)
endif()

View File

@ -9,6 +9,12 @@
#include <assert.h> #include <assert.h>
#include <stdint.h> #include <stdint.h>
#if !defined(static_assert) && (defined(__GNUC__) || defined(__clang__)) \
&& defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L \
&& __STDC_VERSION__ <= 201710L
#define static_assert _Static_assert
#endif
#pragma pack(push, 1) #pragma pack(push, 1)
typedef struct { typedef struct {

View File

@ -20,7 +20,7 @@ target_include_directories(blisp PRIVATE
"${CMAKE_SOURCE_DIR}/include") "${CMAKE_SOURCE_DIR}/include")
target_link_libraries(blisp PRIVATE target_link_libraries(blisp PRIVATE
argtable3 argtable3::argtable3
libblisp_static file_parsers) libblisp_static file_parsers)
if (WIN32) if (WIN32)

View File

@ -2,6 +2,7 @@
#define PARSE_FILE_H_ #define PARSE_FILE_H_
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h> /* ssize_t */
#if defined(_MSC_VER) #if defined(_MSC_VER)
#include <BaseTsd.h> #include <BaseTsd.h>
typedef SSIZE_T ssize_t; typedef SSIZE_T ssize_t;