@@ -25,24 +25,52 @@ endif()
2525
2626set (INSTALL_LIB_DIR "${GSKIT} /lib" CACHE PATH "Installation directory for libraries" )
2727set (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
2930set (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
3150find_library (LIBJPEG_LIBRARY NAMES jpeg)
3251find_path (LIBJPEG_INCLUDE_DIR NAMES jpeglib.h)
3352
3453if (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)
3857endif ()
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+
4068find_library (LIBTIFF_LIBRARY NAMES tiff)
4169find_path (LIBTIFF_INCLUDE_DIR NAMES tiff.h)
4270
4371if (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)
4775endif ()
4876
@@ -51,7 +79,7 @@ find_path(LIBZ_INCLUDE_DIR NAMES zlib.h)
5179
5280if (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)
5684endif ()
5785
@@ -60,10 +88,12 @@ find_path(LIBPNG_INCLUDE_DIR NAMES png.h)
6088
6189if (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)
6593endif ()
6694
95+ include_directories (${GSKIT_EXTERNAL_INCLUDES} )
96+
6797macro (add_object_library_macros objlistvar sourcefile)
6898 set (objects_list "" )
6999 foreach (arg IN ITEMS ${ARGN} )
@@ -269,6 +299,18 @@ add_library(gskit_toolkit STATIC
269299
270300target_include_directories (gskit_toolkit PUBLIC ee/toolkit/include )
271301
302+ set (PCKEY_NAME gsKit)
303+ set (PCKEY_DESCRIPTION "gsKit graphics library for Sony Playstation 2" )
304+ set (PCKEY_VERSION ${CUR_VERSION} )
305+ set (PCKEY_REQUIRES)
306+ set (PCKEY_LIBS "-L${INSTALL_LIB_DIR} -lgskit -ldmakit -lgskit_toolkit" )
307+ foreach (_ITEM ${GSKIT_EXTERNAL_LIBS} )
308+ set (PCKEY_LIBS "${PCKEY_LIBS} ${_ITEM} " )
309+ endforeach ()
310+ set (PCKEY_CFLAGS "-I${INSTALL_INC_DIR} " )
311+ set (GSKIT_PC ${CMAKE_CURRENT_BINARY_DIR} /gsKit.pc)
312+ configure_file ( ${CMAKE_CURRENT_SOURCE_DIR} /gsKit.pc.cmakein
313+ ${GSKIT_PC} @ONLY)
272314
273315if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
274316 install (TARGETS gskit dmakit gskit_toolkit
@@ -282,6 +324,9 @@ if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL)
282324 FILES_MATCHING PATTERN "*.h"
283325 )
284326endif ()
327+ if (NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
328+ install (FILES ${GSKIT_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR} " )
329+ endif ()
285330
286331if (NOT SKIP_BUILD_EXAMPLES)
287332 set (CMAKE_EXECUTABLE_SUFFIX .elf)
0 commit comments