Compare commits

..

13 Commits

Author SHA1 Message Date
Berk D. Demir
ab304e6915
Merge e959756f5a into bfe472e71c 2024-12-13 02:49:42 +03:00
Ben V. Brown
bfe472e71c
Merge pull request #65 from JetbladeDevsStuff/fix-build-macos
Fix lots of build problems on macOS
2024-12-12 13:05:16 +11:00
Terence Noone
2268e535d4 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-12-11 20:54:11 -05:00
Terence Noone
cb32800728 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-12-11 20:54:11 -05:00
Terence Noone
da463d79fd 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-12-11 20:54:11 -05: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
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:
shell: cmd
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: lukka/get-cmake@latest
@ -35,7 +35,7 @@ jobs:
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
- name: Upload results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: blips-windows-x86_64.zip
path: |
@ -45,7 +45,7 @@ jobs:
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: lukka/get-cmake@latest
@ -56,7 +56,7 @@ jobs:
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build .
- name: Upload results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: blips-apple-universal.zip
path: |
@ -66,7 +66,7 @@ jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: lukka/get-cmake@latest
@ -77,12 +77,12 @@ jobs:
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build .
- name: Upload results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: blips-linux-x86_64.zip
path: |
build/tools/blisp/blisp
if-no-files-found: error
if-no-files-found: error
build-linux-alternative-arch:
runs-on: ubuntu-latest
@ -99,7 +99,7 @@ jobs:
- arch: riscv64
distro: ubuntu_latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: uraimo/run-on-arch-action@v2
@ -149,9 +149,9 @@ jobs:
echo "Produced artifact at /artifacts/${artifact_name}"
- name: Upload results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: blisp-linux-${{ matrix.arch }}.zip
path: |
artifacts/blisp-*
if-no-files-found: error
if-no-files-found: error

View File

@ -1,5 +1,6 @@
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)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_C_STANDARD 11)
@ -45,11 +46,10 @@ set_target_properties(libblisp_static PROPERTIES
OUTPUT_NAME "blisp")
if(BLISP_USE_SYSTEM_LIBRARIES)
find_package(PkgConfig)
pkg_search_module(LIBSERIALPORT REQUIRED libserialport)
target_link_libraries(libblisp PUBLIC ${LIBSERIALPORT_LIBRARIES})
target_link_libraries(libblisp_static PUBLIC ${LIBSERIALPORT_LIBRARIES})
target_include_directories(libblisp_obj PUBLIC ${LIBSERIALPORT_INCLUDE_DIRS})
find_package(Libserialport REQUIRED)
target_link_libraries(libblisp PUBLIC Libserialport::Libserialport)
target_link_libraries(libblisp_static PUBLIC Libserialport::Libserialport)
target_include_directories(libblisp_obj PUBLIC ${Libserialport_INCLUDE_DIRS})
else()
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
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 <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)
typedef struct {

View File

@ -20,7 +20,7 @@ target_include_directories(blisp PRIVATE
"${CMAKE_SOURCE_DIR}/include")
target_link_libraries(blisp PRIVATE
argtable3
argtable3::argtable3
libblisp_static file_parsers)
target_compile_options(blisp PRIVATE -Wall -Wextra -Wpedantic)

View File

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