(experimental) libeuropa: Make libeuropa a shared library

Bleh. Might as well.

NO ABI GUARANTEES UNTIL A REAL 1.0.0 RELEASE.
This commit is contained in:
Lily Tsuru 2025-01-17 22:25:13 -05:00
parent f5d03cfdeb
commit 69a7b0e45e
3 changed files with 13 additions and 3 deletions

View file

@ -14,7 +14,7 @@ if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}")
endif()
project(EuropaTools
VERSION 1.0.0
VERSION 0.5.0
LANGUAGES C CXX
DESCRIPTION "Tools for working with LEC Europa based games (Star Wars: Starfighter & Star Wars: Jedi Starfighter)"
)

View file

@ -1,6 +1,6 @@
# TODO: This currently assumes libstdc++, later on we should *probably* set this with some detection
# also TODO: Use a list so that this isn't one giant line (list JOIN should help.)
set(EUROPA_CORE_COMPILE_ARGS "-Wall -Wextra -Wformat=2 -Wimplicit-fallthrough -fvisibility=hidden")
set(EUROPA_CORE_COMPILE_ARGS "-Wall -Wextra -Wformat=2 -Wimplicit-fallthrough")
set(EUROPA_CORE_LINKER_ARGS "-fuse-ld=${EUROPA_LINKER}")
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release") # OR "${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo"

View file

@ -6,7 +6,14 @@
# SPDX-License-Identifier: MIT
#
add_library(europa
# NOTICE: libeuropa in shared form does not have a stable ABI yet,
# and more than likely, until a defined semver release
# never will.
#
# There will probably be an option or additional target always
# to build static libeuropa.
add_library(europa SHARED
# Utility
util/ImageSurface.cpp
@ -24,3 +31,6 @@ add_library(europa
target_include_directories(europa PUBLIC ${PROJECT_SOURCE_DIR}/include)
target_compile_features(europa PUBLIC cxx_std_20)
# SOversion for *ix.
set_target_properties(europa PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 0)