Skip to content

Commit 65748e2

Browse files
committed
add: pkg-config file for gsKit
1 parent 843ab0a commit 65748e2

File tree

3 files changed

+69
-7
lines changed

3 files changed

+69
-7
lines changed

.github/workflows/compilation.yml

+6-2
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,16 @@ jobs:
1111
runs-on: ubuntu-latest
1212
container: ps2dev/ps2sdk-ports:latest
1313
steps:
14-
- uses: actions/checkout@v4
15-
1614
- name: Install dependencies
1715
run: |
1816
apk add build-base git cmake
1917
18+
- uses: actions/checkout@v4
19+
20+
- run: |
21+
git config --global --add safe.directory "$GITHUB_WORKSPACE"
22+
git fetch --prune --unshallow
23+
2024
- name: Compile project with everything enabled
2125
env:
2226
GSKIT_DEBUG: 1

CMakeLists.txt

+50-5
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,52 @@ endif()
2525

2626
set(INSTALL_LIB_DIR "${GSKIT}/lib" CACHE PATH "Installation directory for libraries")
2727
set(INSTALL_INC_DIR "${GSKIT}/include" CACHE PATH "Installation directory for headers")
28+
set(INSTALL_PKGCONFIG_DIR "${GSKIT}/lib/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
2829

2930
set(GSKIT_EXTERNAL_LIBS "")
31+
set(GSKIT_EXTERNAL_INCLUDES "")
32+
33+
set(CUR_GIT_TAG v0.0.0)
34+
find_package(Git)
35+
if(GIT_FOUND)
36+
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
37+
execute_process(COMMAND ${GIT_EXECUTABLE} describe --abbrev=0 --tags
38+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
39+
OUTPUT_VARIABLE TMP_GIT_TAG
40+
RESULT_VARIABLE TMP_RES
41+
OUTPUT_STRIP_TRAILING_WHITESPACE)
42+
if(TMP_RES EQUAL "0")
43+
set(CUR_GIT_TAG ${TMP_GIT_TAG})
44+
endif()
45+
endif()
46+
endif()
47+
48+
string(REGEX REPLACE "^v" "" CUR_VERSION ${CUR_GIT_TAG})
3049

3150
find_library(LIBJPEG_LIBRARY NAMES jpeg)
3251
find_path(LIBJPEG_INCLUDE_DIR NAMES jpeglib.h)
3352

3453
if(LIBJPEG_LIBRARY)
3554
list(APPEND GSKIT_EXTERNAL_LIBS ${LIBJPEG_LIBRARY})
36-
include_directories(${LIBJPEG_INCLUDE_DIR})
55+
list(APPEND GSKIT_EXTERNAL_INCLUDES ${LIBJPEG_INCLUDE_DIR})
3756
add_definitions(-DHAVE_LIBJPEG)
3857
endif()
3958

59+
find_library(LIBLZMA_LIBRARY NAMES lzma)
60+
find_path(LIBLZMA_INCLUDE_DIR NAMES lzma.h)
61+
62+
if(LIBLZMA_LIBRARY)
63+
list(APPEND GSKIT_EXTERNAL_LIBS ${LIBLZMA_LIBRARY})
64+
list(APPEND GSKIT_EXTERNAL_INCLUDES ${LIBLZMA_INCLUDE_DIR})
65+
add_definitions(-DHAVE_LIBLZMA)
66+
endif()
67+
4068
find_library(LIBTIFF_LIBRARY NAMES tiff)
4169
find_path(LIBTIFF_INCLUDE_DIR NAMES tiff.h)
4270

4371
if(LIBTIFF_LIBRARY)
44-
list(APPEND GSKIT_EXTERNAL_LIBS lzma ${LIBTIFF_LIBRARY})
45-
include_directories(${LIBTIFF_INCLUDE_DIR})
72+
list(APPEND GSKIT_EXTERNAL_LIBS ${LIBTIFF_LIBRARY})
73+
list(APPEND GSKIT_EXTERNAL_INCLUDES ${LIBTIFF_INCLUDE_DIR})
4674
add_definitions(-DHAVE_LIBTIFF)
4775
endif()
4876

@@ -51,7 +79,7 @@ find_path(LIBZ_INCLUDE_DIR NAMES zlib.h)
5179

5280
if(LIBZ_LIBRARY)
5381
list(APPEND GSKIT_EXTERNAL_LIBS ${LIBZ_LIBRARY})
54-
include_directories(${LIBZ_INCLUDE_DIR})
82+
list(APPEND GSKIT_EXTERNAL_INCLUDES ${LIBZ_INCLUDE_DIR})
5583
add_definitions(-DHAVE_ZLIB)
5684
endif()
5785

@@ -60,10 +88,12 @@ find_path(LIBPNG_INCLUDE_DIR NAMES png.h)
6088

6189
if(LIBPNG_LIBRARY)
6290
list(APPEND GSKIT_EXTERNAL_LIBS ${LIBPNG_LIBRARY})
63-
include_directories(${LIBPNG_INCLUDE_DIR})
91+
list(APPEND GSKIT_EXTERNAL_INCLUDES ${LIBPNG_INCLUDE_DIR})
6492
add_definitions(-DHAVE_LIBPNG)
6593
endif()
6694

95+
include_directories(${GSKIT_EXTERNAL_INCLUDES})
96+
6797
macro (add_object_library_macros objlistvar sourcefile)
6898
set(objects_list "")
6999
foreach(arg IN ITEMS ${ARGN})
@@ -264,6 +294,18 @@ add_library(gskit_toolkit STATIC
264294

265295
target_include_directories(gskit_toolkit PUBLIC ee/toolkit/include)
266296

297+
set(PCKEY_NAME gsKit)
298+
set(PCKEY_DESCRIPTION "gsKit graphics library for Sony Playstation 2")
299+
set(PCKEY_VERSION ${CUR_VERSION})
300+
set(PCKEY_REQUIRES)
301+
set(PCKEY_LIBS "-L${INSTALL_LIB_DIR} -lgskit -ldmakit -lgskit_toolkit")
302+
foreach(_ITEM ${GSKIT_EXTERNAL_LIBS})
303+
set(PCKEY_LIBS "${PCKEY_LIBS} ${_ITEM}")
304+
endforeach()
305+
set(PCKEY_CFLAGS "-I${INSTALL_INC_DIR}")
306+
set(GSKIT_PC ${CMAKE_CURRENT_BINARY_DIR}/gsKit.pc)
307+
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/gsKit.pc.cmakein
308+
${GSKIT_PC} @ONLY)
267309

268310
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
269311
install(TARGETS gskit dmakit gskit_toolkit
@@ -277,6 +319,9 @@ if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL)
277319
FILES_MATCHING PATTERN "*.h"
278320
)
279321
endif()
322+
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
323+
install(FILES ${GSKIT_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
324+
endif()
280325

281326
if(NOT SKIP_BUILD_EXAMPLES)
282327
set(CMAKE_EXECUTABLE_SUFFIX .elf)

gsKit.pc.cmakein

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
prefix=@CMAKE_INSTALL_PREFIX@
2+
exec_prefix=@CMAKE_INSTALL_PREFIX@
3+
libdir=@INSTALL_LIB_DIR@
4+
sharedlibdir=@INSTALL_LIB_DIR@
5+
includedir=@INSTALL_INC_DIR@
6+
7+
Name: @PCKEY_NAME@
8+
Description: @PCKEY_DESCRIPTION@
9+
Version: @PCKEY_VERSION@
10+
11+
Requires: @PCKEY_REQUIRES@
12+
Libs: @PCKEY_LIBS@
13+
Cflags: @PCKEY_CFLAGS@

0 commit comments

Comments
 (0)