Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ jobs:
-DBUILD_TESTING=OFF `
-DVCPKG_TARGET_TRIPLET=x64-windows-static `
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake" `
${{ startsWith(github.ref, 'refs/tags/v') && format('-DFLAPI_VERSION_OVERRIDE={0}', github.ref_name) || '' }} `
../..

- name: Build
Expand Down Expand Up @@ -111,6 +112,7 @@ jobs:
run: |
docker run \
${{ matrix.arch == 'arm64' && format('-e FLAPI_CROSS_COMPILE="{0}"', matrix.arch) || '' }} \
${{ startsWith(github.ref, 'refs/tags/v') && format('-e CMAKE_EXTRA_FLAGS="-DFLAPI_VERSION_OVERRIDE={0}"', github.ref_name) || '' }} \
-v `pwd`:/build_dir \
-v ~/.ccache:/ccache_dir \
${BUILD_IMAGE} \
Expand Down Expand Up @@ -209,6 +211,8 @@ jobs:
./bootstrap-vcpkg.sh -disableMetrics

- name: Build
env:
CMAKE_EXTRA_FLAGS: ${{ startsWith(github.ref, 'refs/tags/v') && format('-DFLAPI_VERSION_OVERRIDE={0}', github.ref_name) || '' }}
run: make release-arm64 && make test

- name: Upload artifact
Expand Down
29 changes: 26 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,30 @@ else()
endif()

# Set project name and version
project(flAPI VERSION 0.3.0 LANGUAGES CXX)
project(flAPI VERSION 26.06.11 LANGUAGES CXX)

# Resolve the version string baked into the binary (FLAPI_VERSION), used for
# telemetry app_version and `flapi --version`. Priority:
# 1. -DFLAPI_VERSION_OVERRIDE=... (set by CI from the git tag)
# 2. `git describe --tags --dirty` (meaningful versions for local dev builds)
# 3. "latest" (fallback: source tarball / no git)
# A leading "v" is stripped so the binary reports clean semver (e.g. 0.4.0),
# matching the wheel pipeline.
if(FLAPI_VERSION_OVERRIDE)
set(FLAPI_VERSION_STR "${FLAPI_VERSION_OVERRIDE}")
else()
execute_process(
COMMAND git describe --tags --dirty --always
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE FLAPI_VERSION_STR
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
if(NOT FLAPI_VERSION_STR)
set(FLAPI_VERSION_STR "latest")
endif()
endif()
string(REGEX REPLACE "^v" "" FLAPI_VERSION_STR "${FLAPI_VERSION_STR}")
message(STATUS "flAPI version (FLAPI_VERSION): ${FLAPI_VERSION_STR}")

# Basic settings
set(CMAKE_CXX_STANDARD 17)
Expand Down Expand Up @@ -329,7 +352,7 @@ target_link_libraries(flapi-lib PUBLIC
)

target_compile_definitions(flapi-lib PRIVATE
FLAPI_VERSION="${CMAKE_PROJECT_VERSION}"
FLAPI_VERSION="${FLAPI_VERSION_STR}"
)

# Add RPATH settings for macOS
Expand All @@ -342,7 +365,7 @@ endif()
# Create main executable
add_executable(flapi src/main.cpp)
target_link_libraries(flapi PRIVATE flapi-lib)
target_compile_definitions(flapi PRIVATE FLAPI_VERSION="${CMAKE_PROJECT_VERSION}")
target_compile_definitions(flapi PRIVATE FLAPI_VERSION="${FLAPI_VERSION_STR}")
set_target_properties(flapi PROPERTIES ENABLE_EXPORTS TRUE)

# macOS reserved-segment for self-packaging (#48). Allocates a
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ ifeq ($(shell uname),Darwin)
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DVCPKG_TARGET_TRIPLET=x64-osx \
-DBUILD_TESTING=ON \
$(CMAKE_GENERATOR) ../..
$(CMAKE_GENERATOR) $(CMAKE_EXTRA_FLAGS) ../..
@$(CMAKE) --build $(RELEASE_DIR)-x86_64 --config Release

release-arm64:
Expand All @@ -149,7 +149,7 @@ ifeq ($(shell uname),Darwin)
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DVCPKG_TARGET_TRIPLET=arm64-osx \
-DBUILD_TESTING=ON \
$(CMAKE_GENERATOR) ../..
$(CMAKE_GENERATOR) $(CMAKE_EXTRA_FLAGS) ../..
@$(CMAKE) --build $(RELEASE_DIR)-arm64 --config Release

# Override the default release target on macOS
Expand Down
Loading