Skip to content
This repository was archived by the owner on Oct 26, 2025. It is now read-only.
Open
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
143 changes: 7 additions & 136 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,144 +1,15 @@
.DS_Store
*.o
*.d
.minimal-deps
qmake/Makefile
qmake/libacfutils.a
mac32
mac64
win32
win64
lin32
lin64
.qmake.stash
object_script.libacfutils.Debug
object_script.libacfutils.Release

build_opus_deps

libogg-1.3.2
libogg-linux-32
libogg-linux-64
libogg-mac-32
libogg-mac-64
libogg-win-32
libogg-win-64

opusfile-0.7
opusfile-linux-32
opusfile-linux-64
opusfile-mac-32
opusfile-mac-64
opusfile-win-32
opusfile-win-64

opus-1.2.1
opus-linux-32
opus-linux-64
opus-mac-32
opus-mac-64
opus-win-32
opus-win-64

curl-8.4.0
libcurl-linux-64
libcurl-win-64
libcurl-mac-64

lzma/qmake/object_script.liblzma.Debug
lzma/qmake/object_script.liblzma.Release
lzma/qmake/linux-32
lzma/qmake/linux-64
lzma/qmake/mac-32
lzma/qmake/mac-64
lzma/qmake/win-32
lzma/qmake/win-64
lzma/qmake/Makefile

src/test/dsfdump
src/test/shpdump
src/test/rwmutex

libacfutils-redist
qmake/acfutils.def
qmake/acfutils_resource.rc
qmake/object_script.acfutils.Debug
qmake/object_script.acfutils.Release

shapelib/libproj-linux-64
shapelib/libproj-mac-64
shapelib/libproj-win-64
shapelib/libshape-linux-64
shapelib/libshape-mac-64
shapelib/libshape-win-64
shapelib/proj-4.9.3
shapelib/shapelib-1.4.1

ocr/leptonica-1.75.1
ocr/liblept-linux-64
ocr/liblept-mac-64
ocr/liblept-win-64
ocr/tesseract-3.05.00
ocr/tesseract-linux-64
ocr/tesseract-mac-64
ocr/tesseract-win-64

ssl/openssl-1.1.1w
ssl/openssl-win-64
ssl/openssl-mac-64
ssl/openssl-mac-arm
ssl/openssl-linux-64

cglm/cglm-0.7.9

openal-soft/openal-soft-*-win-64
openal-soft/openal-soft-*-mac-64
openal-soft/openal-soft-*-linux-64

libxml2/libxml2-2.9.14
libxml2/libxml2-linux-64
libxml2/libxml2-win-64
libxml2/libxml2-mac-64

libjpeg/jpegsrc.v9c
libjpeg/libjpeg-linux-64
libjpeg/libjpeg-win-64
libjpeg/libjpeg-mac-64

pcre2/pcre2-10.42
pcre2/pcre2-linux-64
pcre2/pcre2-mac-64
pcre2/pcre2-win-64

glfw/glfw-3.3.8
glfw/glfw-linux-64
glfw/glfw-mac-64
glfw/glfw-win-64

glew/glew-1.13.0-linux-64
glew/glew-1.13.0-mac-64
glew/glew-1.13.0-win-64
glew/glew-1.13.0-mac-arm

cairo/cairo-1.16.0
cairo/pixman-0.36.0

libclipboard/libclipboard-linux-64

ucpp/libucpp.a
ucpp/sample

libiconv/libiconv-1.16
libiconv/libiconv-linux-64
libiconv/libiconv-mac-64
libiconv/libiconv-win-64

geographiclib/GeographicLib-1.51/
geographiclib/geographiclib-linux-64
geographiclib/geographiclib-mac-64
geographiclib/geographiclib-win-64

doc/html

rust/Cargo.lock
rust/target

/*build*

.vscode

vcpkg_installed
CMakeUserPresets.json
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

95 changes: 95 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
cmake_minimum_required(VERSION 3.25..3.27)

# Force CMake to build universal binaries for Mac.
set(CMAKE_OSX_ARCHITECTURES
"x86_64;arm64"
CACHE INTERNAL "" FORCE)

project(
libacfutils
DESCRIPTION "General purpose utility library for X-Plane plugins."
LANGUAGES C)

# Require out-of-source builds
file(TO_CMAKE_PATH "${PROJECT_BINARY_DIR}/CMakeLists.txt" LOC_PATH)
if(EXISTS "${LOC_PATH}")
message(
FATAL_ERROR
"You cannot build in a source directory (or any directory with a CMakeLists.txt file). Please make a build subdirectory. Feel free to remove CMakeCache.txt and CMakeFiles."
)
endif()

option(MINIMAL "Build libacfutils in minimal mode.")
option(BUILD_SHARED_LIBS "Build shared (dynamic) libraries.")

# Do stuff if building this standalone. Would suggest one is specifically
# developing libacfutils.
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
endif()

if(APPLE)
enable_language(OBJC)
endif()

find_package(Git)
if(GIT_EXECUTABLE)
# Generate a git-describe version string from Git repository tags
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags --dirty --match "v*"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_DESCRIBE_VERSION
RESULT_VARIABLE GIT_DESCRIBE_ERROR_CODE
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT GIT_DESCRIBE_ERROR_CODE)
set(ACFUTILS_VERSION ${GIT_DESCRIBE_VERSION})
endif()
endif()

if(NOT DEFINED ACFUTILS_VERSION)
set(ACFUTILS_VERSION v0.0.0-unknown)
message(
WARNING
"Failed to determine ACFUTILS_VERSION from Git tags. Using default version \"${ACFUTILS_VERSION}\"."
)
endif()

add_subdirectory(src)

include(GNUInstallDirs)

install(
TARGETS acfutils
EXPORT acfutilsTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})

install(
EXPORT acfutilsTargets
FILE libacfutils-targets.cmake
NAMESPACE libacfutils::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libacfutils)

include(CMakePackageConfigHelpers)

configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/libacfutils-config.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/libacfutils-config.cmake"
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libacfutils)

write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/libacfutils-config-version.cmake"
VERSION "${ACFUTILS_VERSION}"
COMPATIBILITY AnyNewerVersion
)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libacfutils-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/libacfutils-config-version.cmake"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libacfutils)

if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR MODERN_CMAKE_BUILD_TESTING)
# add_subdirectory(test) Unlinkable -- undefined symbols.
endif()
26 changes: 26 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"version": 6,
"cmakeMinimumRequired": {
"major": 3,
"minor": 25,
"patch": 0
},
"configurePresets": [
{
"name": "default",
"displayName": "Default Config",
"description": "Default build using Ninja generator.",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/default",
"toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
"cacheVariables": {},
"environment": {}
}
],
"buildPresets": [
{
"name": "default",
"configurePreset": "default"
}
]
}
Loading