games/vegastrike: Adjustments for -current.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
This commit is contained in:
parent
ad1208115f
commit
a569ecc1f9
|
@ -0,0 +1,946 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindGTK2
|
||||
--------
|
||||
|
||||
Find the GTK2 widget libraries and several of its other optional components
|
||||
like ``gtkmm``, ``glade``, and ``glademm``.
|
||||
|
||||
Specify one or more of the following components as you call this find
|
||||
module. See example below.
|
||||
|
||||
* ``gtk``
|
||||
* ``gtkmm``
|
||||
* ``glade``
|
||||
* ``glademm``
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
The following variables will be defined for your use
|
||||
|
||||
``GTK2_FOUND``
|
||||
Were all of your specified components found?
|
||||
``GTK2_INCLUDE_DIRS``
|
||||
All include directories
|
||||
``GTK2_LIBRARIES``
|
||||
All libraries
|
||||
``GTK2_TARGETS``
|
||||
All imported targets
|
||||
``GTK2_DEFINITIONS``
|
||||
Additional compiler flags
|
||||
``GTK2_VERSION``
|
||||
The version of GTK2 found (x.y.z)
|
||||
``GTK2_MAJOR_VERSION``
|
||||
The major version of GTK2
|
||||
``GTK2_MINOR_VERSION``
|
||||
The minor version of GTK2
|
||||
``GTK2_PATCH_VERSION``
|
||||
The patch version of GTK2
|
||||
|
||||
Input Variables
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
Optional variables you can define prior to calling this module:
|
||||
|
||||
``GTK2_DEBUG``
|
||||
Enables verbose debugging of the module
|
||||
``GTK2_ADDITIONAL_SUFFIXES``
|
||||
Allows defining additional directories to search for include files
|
||||
|
||||
Example Usage
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
Call :command:`find_package` once. Here are some examples to pick from:
|
||||
|
||||
Require GTK 2.6 or later:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package(GTK2 2.6 REQUIRED gtk)
|
||||
|
||||
Require GTK 2.10 or later and Glade:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package(GTK2 2.10 REQUIRED gtk glade)
|
||||
|
||||
Search for GTK/GTKMM 2.8 or later:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package(GTK2 2.8 COMPONENTS gtk gtkmm)
|
||||
|
||||
Use the results:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
if(GTK2_FOUND)
|
||||
include_directories(${GTK2_INCLUDE_DIRS})
|
||||
add_executable(mygui mygui.cc)
|
||||
target_link_libraries(mygui ${GTK2_LIBRARIES})
|
||||
endif()
|
||||
#]=======================================================================]
|
||||
|
||||
# Version 1.6 (CMake 3.0)
|
||||
# * Create targets for each library
|
||||
# * Do not link libfreetype
|
||||
# Version 1.5 (CMake 2.8.12)
|
||||
# * 14236: Detect gthread library
|
||||
# Detect pangocairo on windows
|
||||
# Detect pangocairo with gtk module instead of with gtkmm
|
||||
# * 14259: Use vc100 libraries with VS 11
|
||||
# * 14260: Export a GTK2_DEFINITIONS variable to set /vd2 when appropriate
|
||||
# (i.e. MSVC)
|
||||
# * Use the optimized/debug syntax for _LIBRARY and _LIBRARIES variables when
|
||||
# appropriate. A new set of _RELEASE variables was also added.
|
||||
# * Remove GTK2_SKIP_MARK_AS_ADVANCED option, as now the variables are
|
||||
# marked as advanced by SelectLibraryConfigurations
|
||||
# * Detect gmodule, pangoft2 and pangoxft libraries
|
||||
# Version 1.4 (10/4/2012) (CMake 2.8.10)
|
||||
# * 12596: Missing paths for FindGTK2 on NetBSD
|
||||
# * 12049: Fixed detection of GTK include files in the lib folder on
|
||||
# multiarch systems.
|
||||
# Version 1.3 (11/9/2010) (CMake 2.8.4)
|
||||
# * 11429: Add support for detecting GTK2 built with Visual Studio 10.
|
||||
# Thanks to Vincent Levesque for the patch.
|
||||
# Version 1.2 (8/30/2010) (CMake 2.8.3)
|
||||
# * Merge patch for detecting gdk-pixbuf library (split off
|
||||
# from core GTK in 2.21). Thanks to Vincent Untz for the patch
|
||||
# and Ricardo Cruz for the heads up.
|
||||
# Version 1.1 (8/19/2010) (CMake 2.8.3)
|
||||
# * Add support for detecting GTK2 under macports (thanks to Gary Kramlich)
|
||||
# Version 1.0 (8/12/2010) (CMake 2.8.3)
|
||||
# * Add support for detecting new pangommconfig.h header file
|
||||
# (Thanks to Sune Vuorela & the Debian Project for the patch)
|
||||
# * Add support for detecting fontconfig.h header
|
||||
# * Call find_package(Freetype) since it's required
|
||||
# * Add support for allowing users to add additional library directories
|
||||
# via the GTK2_ADDITIONAL_SUFFIXES variable (kind of a future-kludge in
|
||||
# case the GTK developers change versions on any of the directories in the
|
||||
# future).
|
||||
# Version 0.8 (1/4/2010)
|
||||
# * Get module working under MacOSX fink by adding /sw/include, /sw/lib
|
||||
# to PATHS and the gobject library
|
||||
# Version 0.7 (3/22/09)
|
||||
# * Checked into CMake CVS
|
||||
# * Added versioning support
|
||||
# * Module now defaults to searching for GTK if COMPONENTS not specified.
|
||||
# * Added HKCU prior to HKLM registry key and GTKMM specific environment
|
||||
# variable as per mailing list discussion.
|
||||
# * Added lib64 to include search path and a few other search paths where GTK
|
||||
# may be installed on Unix systems.
|
||||
# * Switched to lowercase CMake commands
|
||||
# * Prefaced internal variables with _GTK2 to prevent collision
|
||||
# * Changed internal macros to functions
|
||||
# * Enhanced documentation
|
||||
# Version 0.6 (1/8/08)
|
||||
# Added GTK2_SKIP_MARK_AS_ADVANCED option
|
||||
# Version 0.5 (12/19/08)
|
||||
# Second release to cmake mailing list
|
||||
|
||||
#=============================================================
|
||||
# _GTK2_GET_VERSION
|
||||
# Internal function to parse the version number in gtkversion.h
|
||||
# _OUT_major = Major version number
|
||||
# _OUT_minor = Minor version number
|
||||
# _OUT_micro = Micro version number
|
||||
# _gtkversion_hdr = Header file to parse
|
||||
#=============================================================
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
|
||||
|
||||
function(_GTK2_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr)
|
||||
file(STRINGS ${_gtkversion_hdr} _contents REGEX "#define GTK_M[A-Z]+_VERSION[ \t]+")
|
||||
if(_contents)
|
||||
string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_major} "${_contents}")
|
||||
string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_minor} "${_contents}")
|
||||
string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_micro} "${_contents}")
|
||||
|
||||
if(NOT ${_OUT_major} MATCHES "[0-9]+")
|
||||
message(FATAL_ERROR "Version parsing failed for GTK2_MAJOR_VERSION!")
|
||||
endif()
|
||||
if(NOT ${_OUT_minor} MATCHES "[0-9]+")
|
||||
message(FATAL_ERROR "Version parsing failed for GTK2_MINOR_VERSION!")
|
||||
endif()
|
||||
if(NOT ${_OUT_micro} MATCHES "[0-9]+")
|
||||
message(FATAL_ERROR "Version parsing failed for GTK2_MICRO_VERSION!")
|
||||
endif()
|
||||
|
||||
set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE)
|
||||
set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE)
|
||||
set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE)
|
||||
else()
|
||||
message(FATAL_ERROR "Include file ${_gtkversion_hdr} does not exist")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
#=============================================================
|
||||
# _GTK2_SIGCXX_GET_VERSION
|
||||
# Internal function to parse the version number in
|
||||
# sigc++config.h
|
||||
# _OUT_major = Major version number
|
||||
# _OUT_minor = Minor version number
|
||||
# _OUT_micro = Micro version number
|
||||
# _sigcxxversion_hdr = Header file to parse
|
||||
#=============================================================
|
||||
|
||||
function(_GTK2_SIGCXX_GET_VERSION _OUT_major _OUT_minor _OUT_micro _sigcxxversion_hdr)
|
||||
file(STRINGS ${_sigcxxversion_hdr} _contents REGEX "#define SIGCXX_M[A-Z]+_VERSION[ \t]+")
|
||||
if(_contents)
|
||||
string(REGEX REPLACE ".*#define SIGCXX_MAJOR_VERSION[ \t]+([0-9]+).*" "\\1" ${_OUT_major} "${_contents}")
|
||||
string(REGEX REPLACE ".*#define SIGCXX_MINOR_VERSION[ \t]+([0-9]+).*" "\\1" ${_OUT_minor} "${_contents}")
|
||||
string(REGEX REPLACE ".*#define SIGCXX_MICRO_VERSION[ \t]+([0-9]+).*" "\\1" ${_OUT_micro} "${_contents}")
|
||||
|
||||
if(NOT ${_OUT_major} MATCHES "[0-9]+")
|
||||
message(FATAL_ERROR "Version parsing failed for SIGCXX_MAJOR_VERSION!")
|
||||
endif()
|
||||
if(NOT ${_OUT_minor} MATCHES "[0-9]+")
|
||||
message(FATAL_ERROR "Version parsing failed for SIGCXX_MINOR_VERSION!")
|
||||
endif()
|
||||
if(NOT ${_OUT_micro} MATCHES "[0-9]+")
|
||||
message(FATAL_ERROR "Version parsing failed for SIGCXX_MICRO_VERSION!")
|
||||
endif()
|
||||
|
||||
set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE)
|
||||
set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE)
|
||||
set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE)
|
||||
else()
|
||||
# The header does not have the version macros; assume it is ``0.0.0``.
|
||||
set(${_OUT_major} 0)
|
||||
set(${_OUT_minor} 0)
|
||||
set(${_OUT_micro} 0)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
#=============================================================
|
||||
# _GTK2_FIND_INCLUDE_DIR
|
||||
# Internal function to find the GTK include directories
|
||||
# _var = variable to set (_INCLUDE_DIR is appended)
|
||||
# _hdr = header file to look for
|
||||
#=============================================================
|
||||
function(_GTK2_FIND_INCLUDE_DIR _var _hdr)
|
||||
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )")
|
||||
endif()
|
||||
|
||||
set(_gtk_packages
|
||||
# If these ever change, things will break.
|
||||
${GTK2_ADDITIONAL_SUFFIXES}
|
||||
glibmm-2.4
|
||||
glib-2.0
|
||||
atk-1.0
|
||||
atkmm-1.6
|
||||
cairo
|
||||
cairomm-1.0
|
||||
gdk-pixbuf-2.0
|
||||
gdkmm-2.4
|
||||
giomm-2.4
|
||||
gtk-2.0
|
||||
gtkmm-2.4
|
||||
libglade-2.0
|
||||
libglademm-2.4
|
||||
harfbuzz
|
||||
pango-1.0
|
||||
pangomm-1.4
|
||||
sigc++-2.0
|
||||
)
|
||||
|
||||
#
|
||||
# NOTE: The following suffixes cause searching for header files in both of
|
||||
# these directories:
|
||||
# /usr/include/<pkg>
|
||||
# /usr/lib/<pkg>/include
|
||||
#
|
||||
|
||||
set(_suffixes)
|
||||
foreach(_d ${_gtk_packages})
|
||||
list(APPEND _suffixes ${_d})
|
||||
list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include
|
||||
endforeach()
|
||||
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"include suffixes = ${_suffixes}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_LIBRARY_ARCHITECTURE)
|
||||
set(_gtk2_arch_dir /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE})
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "Adding ${_gtk2_arch_dir} to search path for multiarch support")
|
||||
endif()
|
||||
endif()
|
||||
find_path(GTK2_${_var}_INCLUDE_DIR ${_hdr}
|
||||
PATHS
|
||||
${_gtk2_arch_dir}
|
||||
/usr/local/libx32
|
||||
/usr/local/lib64
|
||||
/usr/local/lib
|
||||
/usr/libx32
|
||||
/usr/lib64
|
||||
/usr/lib
|
||||
/opt/gnome/include
|
||||
/opt/gnome/lib
|
||||
/opt/openwin/include
|
||||
/usr/openwin/lib
|
||||
/sw/lib
|
||||
/opt/local/lib
|
||||
/usr/pkg/lib
|
||||
/usr/pkg/include/glib
|
||||
$ENV{GTKMM_BASEPATH}/include
|
||||
$ENV{GTKMM_BASEPATH}/lib
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
|
||||
PATH_SUFFIXES
|
||||
${_suffixes}
|
||||
)
|
||||
mark_as_advanced(GTK2_${_var}_INCLUDE_DIR)
|
||||
|
||||
if(GTK2_${_var}_INCLUDE_DIR)
|
||||
set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${GTK2_${_var}_INCLUDE_DIR} PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
#=============================================================
|
||||
# _GTK2_FIND_LIBRARY
|
||||
# Internal function to find libraries packaged with GTK2
|
||||
# _var = library variable to create (_LIBRARY is appended)
|
||||
#=============================================================
|
||||
function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version)
|
||||
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"_GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )")
|
||||
endif()
|
||||
|
||||
# Not GTK versions per se but the versions encoded into Windows
|
||||
# import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example)
|
||||
# Also the MSVC libraries use _ for . (this is handled below)
|
||||
set(_versions 2.20 2.18 2.16 2.14 2.12
|
||||
2.10 2.8 2.6 2.4 2.2 2.0
|
||||
1.20 1.18 1.16 1.14 1.12
|
||||
1.10 1.8 1.6 1.4 1.2 1.0)
|
||||
|
||||
set(_library)
|
||||
set(_library_d)
|
||||
|
||||
set(_library ${_lib})
|
||||
|
||||
if(_expand_vc AND MSVC)
|
||||
# Add vc80/vc90/vc100 midfixes
|
||||
if(MSVC_TOOLSET_VERSION LESS 110)
|
||||
set(_library ${_library}-vc${MSVC_TOOLSET_VERSION})
|
||||
else()
|
||||
# Up to gtkmm-win 2.22.0-2 there are no vc110 libraries but vc100 can be used
|
||||
set(_library ${_library}-vc100)
|
||||
endif()
|
||||
set(_library_d ${_library}-d)
|
||||
endif()
|
||||
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"After midfix addition = ${_library} and ${_library_d}")
|
||||
endif()
|
||||
|
||||
set(_lib_list)
|
||||
set(_libd_list)
|
||||
if(_append_version)
|
||||
foreach(_ver ${_versions})
|
||||
list(APPEND _lib_list "${_library}-${_ver}")
|
||||
list(APPEND _libd_list "${_library_d}-${_ver}")
|
||||
endforeach()
|
||||
else()
|
||||
set(_lib_list ${_library})
|
||||
set(_libd_list ${_library_d})
|
||||
endif()
|
||||
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"library list = ${_lib_list} and library debug list = ${_libd_list}")
|
||||
endif()
|
||||
|
||||
# For some silly reason the MSVC libraries use _ instead of .
|
||||
# in the version fields
|
||||
if(_expand_vc AND MSVC)
|
||||
set(_no_dots_lib_list)
|
||||
set(_no_dots_libd_list)
|
||||
foreach(_l ${_lib_list})
|
||||
string(REPLACE "." "_" _no_dots_library ${_l})
|
||||
list(APPEND _no_dots_lib_list ${_no_dots_library})
|
||||
endforeach()
|
||||
# And for debug
|
||||
set(_no_dots_libsd_list)
|
||||
foreach(_l ${_libd_list})
|
||||
string(REPLACE "." "_" _no_dots_libraryd ${_l})
|
||||
list(APPEND _no_dots_libd_list ${_no_dots_libraryd})
|
||||
endforeach()
|
||||
|
||||
# Copy list back to original names
|
||||
set(_lib_list ${_no_dots_lib_list})
|
||||
set(_libd_list ${_no_dots_libd_list})
|
||||
endif()
|
||||
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"While searching for GTK2_${_var}_LIBRARY, our proposed library list is ${_lib_list}")
|
||||
endif()
|
||||
|
||||
find_library(GTK2_${_var}_LIBRARY_RELEASE
|
||||
NAMES ${_lib_list}
|
||||
PATHS
|
||||
/opt/gnome/lib
|
||||
/usr/openwin/lib
|
||||
$ENV{GTKMM_BASEPATH}/lib
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
|
||||
)
|
||||
|
||||
if(_expand_vc AND MSVC)
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"While searching for GTK2_${_var}_LIBRARY_DEBUG our proposed library list is ${_libd_list}")
|
||||
endif()
|
||||
|
||||
find_library(GTK2_${_var}_LIBRARY_DEBUG
|
||||
NAMES ${_libd_list}
|
||||
PATHS
|
||||
$ENV{GTKMM_BASEPATH}/lib
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
|
||||
)
|
||||
endif()
|
||||
|
||||
select_library_configurations(GTK2_${_var})
|
||||
|
||||
set(GTK2_${_var}_LIBRARY ${GTK2_${_var}_LIBRARY} PARENT_SCOPE)
|
||||
set(GTK2_${_var}_FOUND ${GTK2_${_var}_FOUND} PARENT_SCOPE)
|
||||
|
||||
if(GTK2_${_var}_FOUND)
|
||||
set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTK2_${_var}_LIBRARY})
|
||||
set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"GTK2_${_var}_LIBRARY_RELEASE = \"${GTK2_${_var}_LIBRARY_RELEASE}\"")
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"GTK2_${_var}_LIBRARY_DEBUG = \"${GTK2_${_var}_LIBRARY_DEBUG}\"")
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"GTK2_${_var}_LIBRARY = \"${GTK2_${_var}_LIBRARY}\"")
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"GTK2_${_var}_FOUND = \"${GTK2_${_var}_FOUND}\"")
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
|
||||
function(_GTK2_ADD_TARGET_DEPENDS_INTERNAL _var _property)
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"_GTK2_ADD_TARGET_DEPENDS_INTERNAL( ${_var} ${_property} )")
|
||||
endif()
|
||||
|
||||
string(TOLOWER "${_var}" _basename)
|
||||
|
||||
if (TARGET GTK2::${_basename})
|
||||
foreach(_depend ${ARGN})
|
||||
set(_valid_depends)
|
||||
if (TARGET GTK2::${_depend})
|
||||
list(APPEND _valid_depends GTK2::${_depend})
|
||||
endif()
|
||||
if (_valid_depends)
|
||||
set_property(TARGET GTK2::${_basename} APPEND PROPERTY ${_property} "${_valid_depends}")
|
||||
endif()
|
||||
set(_valid_depends)
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(_GTK2_ADD_TARGET_DEPENDS _var)
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"_GTK2_ADD_TARGET_DEPENDS( ${_var} )")
|
||||
endif()
|
||||
|
||||
string(TOLOWER "${_var}" _basename)
|
||||
|
||||
if(TARGET GTK2::${_basename})
|
||||
get_target_property(_configs GTK2::${_basename} IMPORTED_CONFIGURATIONS)
|
||||
_GTK2_ADD_TARGET_DEPENDS_INTERNAL(${_var} INTERFACE_LINK_LIBRARIES ${ARGN})
|
||||
foreach(_config ${_configs})
|
||||
_GTK2_ADD_TARGET_DEPENDS_INTERNAL(${_var} IMPORTED_LINK_INTERFACE_LIBRARIES_${_config} ${ARGN})
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(_GTK2_ADD_TARGET_INCLUDE_DIRS _var)
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"_GTK2_ADD_TARGET_INCLUDE_DIRS( ${_var} )")
|
||||
endif()
|
||||
|
||||
string(TOLOWER "${_var}" _basename)
|
||||
|
||||
if(TARGET GTK2::${_basename})
|
||||
foreach(_include ${ARGN})
|
||||
set_property(TARGET GTK2::${_basename} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${_include}")
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
#=============================================================
|
||||
# _GTK2_ADD_TARGET
|
||||
# Internal function to create targets for GTK2
|
||||
# _var = target to create
|
||||
#=============================================================
|
||||
function(_GTK2_ADD_TARGET _var)
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"_GTK2_ADD_TARGET( ${_var} )")
|
||||
endif()
|
||||
|
||||
string(TOLOWER "${_var}" _basename)
|
||||
|
||||
cmake_parse_arguments(_${_var} "" "" "GTK2_DEPENDS;GTK2_OPTIONAL_DEPENDS;OPTIONAL_INCLUDES" ${ARGN})
|
||||
|
||||
if(GTK2_${_var}_FOUND)
|
||||
if(NOT TARGET GTK2::${_basename})
|
||||
# Do not create the target if dependencies are missing
|
||||
foreach(_dep ${_${_var}_GTK2_DEPENDS})
|
||||
if(NOT TARGET GTK2::${_dep})
|
||||
return()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(GTK2::${_basename} UNKNOWN IMPORTED)
|
||||
|
||||
if(GTK2_${_var}_LIBRARY_RELEASE)
|
||||
set_property(TARGET GTK2::${_basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_property(TARGET GTK2::${_basename} PROPERTY IMPORTED_LOCATION_RELEASE "${GTK2_${_var}_LIBRARY_RELEASE}" )
|
||||
endif()
|
||||
|
||||
if(GTK2_${_var}_LIBRARY_DEBUG)
|
||||
set_property(TARGET GTK2::${_basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
||||
set_property(TARGET GTK2::${_basename} PROPERTY IMPORTED_LOCATION_DEBUG "${GTK2_${_var}_LIBRARY_DEBUG}" )
|
||||
endif()
|
||||
|
||||
if(GTK2_${_var}_INCLUDE_DIR)
|
||||
set_property(TARGET GTK2::${_basename} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${GTK2_${_var}_INCLUDE_DIR}")
|
||||
endif()
|
||||
|
||||
if(GTK2_${_var}CONFIG_INCLUDE_DIR AND NOT "x${GTK2_${_var}CONFIG_INCLUDE_DIR}" STREQUAL "x${GTK2_${_var}_INCLUDE_DIR}")
|
||||
set_property(TARGET GTK2::${_basename} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${GTK2_${_var}CONFIG_INCLUDE_DIR}")
|
||||
endif()
|
||||
|
||||
if(GTK2_DEFINITIONS)
|
||||
set_property(TARGET GTK2::${_basename} PROPERTY INTERFACE_COMPILE_DEFINITIONS "${GTK2_DEFINITIONS}")
|
||||
endif()
|
||||
|
||||
if(_${_var}_GTK2_DEPENDS)
|
||||
_GTK2_ADD_TARGET_DEPENDS(${_var} ${_${_var}_GTK2_DEPENDS} ${_${_var}_GTK2_OPTIONAL_DEPENDS})
|
||||
endif()
|
||||
|
||||
if(_${_var}_OPTIONAL_INCLUDES)
|
||||
foreach(_D ${_${_var}_OPTIONAL_INCLUDES})
|
||||
if(_D)
|
||||
_GTK2_ADD_TARGET_INCLUDE_DIRS(${_var} ${_D})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(GTK2_TARGETS ${GTK2_TARGETS} GTK2::${_basename})
|
||||
set(GTK2_TARGETS ${GTK2_TARGETS} PARENT_SCOPE)
|
||||
|
||||
if(GTK2_USE_IMPORTED_TARGETS)
|
||||
set(GTK2_${_var}_LIBRARY GTK2::${_basename} PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
|
||||
#=============================================================
|
||||
|
||||
#
|
||||
# main()
|
||||
#
|
||||
|
||||
set(GTK2_FOUND)
|
||||
set(GTK2_INCLUDE_DIRS)
|
||||
set(GTK2_LIBRARIES)
|
||||
set(GTK2_TARGETS)
|
||||
set(GTK2_DEFINITIONS)
|
||||
|
||||
if(NOT GTK2_FIND_COMPONENTS)
|
||||
# Assume they only want GTK
|
||||
set(GTK2_FIND_COMPONENTS gtk)
|
||||
endif()
|
||||
|
||||
#
|
||||
# If specified, enforce version number
|
||||
#
|
||||
if(GTK2_FIND_VERSION)
|
||||
set(GTK2_FAILED_VERSION_CHECK true)
|
||||
if(GTK2_DEBUG)
|
||||
message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
|
||||
"Searching for version ${GTK2_FIND_VERSION}")
|
||||
endif()
|
||||
_GTK2_FIND_INCLUDE_DIR(GTK gtk/gtk.h)
|
||||
if(GTK2_GTK_INCLUDE_DIR)
|
||||
_GTK2_GET_VERSION(GTK2_MAJOR_VERSION
|
||||
GTK2_MINOR_VERSION
|
||||
GTK2_PATCH_VERSION
|
||||
${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h)
|
||||
set(GTK2_VERSION
|
||||
${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION})
|
||||
if(GTK2_FIND_VERSION_EXACT)
|
||||
if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION)
|
||||
set(GTK2_FAILED_VERSION_CHECK false)
|
||||
endif()
|
||||
else()
|
||||
if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION OR
|
||||
GTK2_VERSION VERSION_GREATER GTK2_FIND_VERSION)
|
||||
set(GTK2_FAILED_VERSION_CHECK false)
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
# If we can't find the GTK include dir, we can't do version checking
|
||||
if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY)
|
||||
message(FATAL_ERROR "Could not find GTK2 include directory")
|
||||
endif()
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(GTK2_FAILED_VERSION_CHECK)
|
||||
if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY)
|
||||
if(GTK2_FIND_VERSION_EXACT)
|
||||
message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, version ${GTK2_FIND_VERSION} is needed exactly.")
|
||||
else()
|
||||
message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, at least version ${GTK2_FIND_VERSION} is required")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# If the version check fails, exit out of the module here
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#
|
||||
# On MSVC, according to https://wiki.gnome.org/gtkmm/MSWindows, the /vd2 flag needs to be
|
||||
# passed to the compiler in order to use gtkmm
|
||||
#
|
||||
if(MSVC)
|
||||
foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
|
||||
if(_GTK2_component STREQUAL "gtkmm")
|
||||
set(GTK2_DEFINITIONS "/vd2")
|
||||
elseif(_GTK2_component STREQUAL "glademm")
|
||||
set(GTK2_DEFINITIONS "/vd2")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
#
|
||||
# Find all components
|
||||
#
|
||||
|
||||
find_package(Freetype QUIET)
|
||||
if(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
|
||||
list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2})
|
||||
endif()
|
||||
|
||||
foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
|
||||
if(_GTK2_component STREQUAL "gtk")
|
||||
# Left for compatibility with previous versions.
|
||||
_GTK2_FIND_INCLUDE_DIR(FONTCONFIG fontconfig/fontconfig.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(X11 X11/Xlib.h)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GLIB glib.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(GLIBCONFIG glibconfig.h)
|
||||
_GTK2_FIND_LIBRARY (GLIB glib false true)
|
||||
_GTK2_ADD_TARGET (GLIB)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GOBJECT glib-object.h)
|
||||
_GTK2_FIND_LIBRARY (GOBJECT gobject false true)
|
||||
_GTK2_ADD_TARGET (GOBJECT GTK2_DEPENDS glib)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(ATK atk/atk.h)
|
||||
_GTK2_FIND_LIBRARY (ATK atk false true)
|
||||
_GTK2_ADD_TARGET (ATK GTK2_DEPENDS gobject glib)
|
||||
|
||||
_GTK2_FIND_LIBRARY (GIO gio false true)
|
||||
_GTK2_ADD_TARGET (GIO GTK2_DEPENDS gobject glib)
|
||||
|
||||
_GTK2_FIND_LIBRARY (GTHREAD gthread false true)
|
||||
_GTK2_ADD_TARGET (GTHREAD GTK2_DEPENDS glib)
|
||||
|
||||
_GTK2_FIND_LIBRARY (GMODULE gmodule false true)
|
||||
_GTK2_ADD_TARGET (GMODULE GTK2_DEPENDS glib)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GDK_PIXBUF gdk-pixbuf/gdk-pixbuf.h)
|
||||
_GTK2_FIND_LIBRARY (GDK_PIXBUF gdk_pixbuf false true)
|
||||
_GTK2_ADD_TARGET (GDK_PIXBUF GTK2_DEPENDS gobject glib)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(CAIRO cairo.h)
|
||||
_GTK2_FIND_LIBRARY (CAIRO cairo false false)
|
||||
_GTK2_ADD_TARGET (CAIRO)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(HARFBUZZ hb.h)
|
||||
_GTK2_FIND_LIBRARY (HARFBUZZ harfbuzz false false)
|
||||
_GTK2_ADD_TARGET (HARFBUZZ)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(PANGO pango/pango.h)
|
||||
_GTK2_FIND_LIBRARY (PANGO pango false true)
|
||||
_GTK2_ADD_TARGET (PANGO GTK2_DEPENDS gobject glib
|
||||
GTK2_OPTIONAL_DEPENDS harfbuzz)
|
||||
|
||||
_GTK2_FIND_LIBRARY (PANGOCAIRO pangocairo false true)
|
||||
_GTK2_ADD_TARGET (PANGOCAIRO GTK2_DEPENDS pango cairo gobject glib)
|
||||
|
||||
_GTK2_FIND_LIBRARY (PANGOFT2 pangoft2 false true)
|
||||
_GTK2_ADD_TARGET (PANGOFT2 GTK2_DEPENDS pango gobject glib
|
||||
OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
|
||||
${GTK2_FONTCONFIG_INCLUDE_DIR}
|
||||
${GTK2_X11_INCLUDE_DIR})
|
||||
|
||||
_GTK2_FIND_LIBRARY (PANGOXFT pangoxft false true)
|
||||
_GTK2_ADD_TARGET (PANGOXFT GTK2_DEPENDS pangoft2 pango gobject glib
|
||||
OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
|
||||
${GTK2_FONTCONFIG_INCLUDE_DIR}
|
||||
${GTK2_X11_INCLUDE_DIR})
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GDK gdk/gdk.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(GDKCONFIG gdkconfig.h)
|
||||
if(UNIX)
|
||||
if(APPLE)
|
||||
_GTK2_FIND_LIBRARY (GDK gdk-quartz false true)
|
||||
endif()
|
||||
_GTK2_FIND_LIBRARY (GDK gdk-x11 false true)
|
||||
else()
|
||||
_GTK2_FIND_LIBRARY (GDK gdk-win32 false true)
|
||||
endif()
|
||||
_GTK2_ADD_TARGET (GDK GTK2_DEPENDS pango gdk_pixbuf gobject glib
|
||||
GTK2_OPTIONAL_DEPENDS pangocairo cairo)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GTK gtk/gtk.h)
|
||||
if(UNIX)
|
||||
if(APPLE)
|
||||
_GTK2_FIND_LIBRARY (GTK gtk-quartz false true)
|
||||
endif()
|
||||
_GTK2_FIND_LIBRARY (GTK gtk-x11 false true)
|
||||
else()
|
||||
_GTK2_FIND_LIBRARY (GTK gtk-win32 false true)
|
||||
endif()
|
||||
_GTK2_ADD_TARGET (GTK GTK2_DEPENDS gdk atk pangoft2 pango gdk_pixbuf gthread gobject glib
|
||||
GTK2_OPTIONAL_DEPENDS gio pangocairo cairo)
|
||||
|
||||
elseif(_GTK2_component STREQUAL "gtkmm")
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(SIGC++ sigc++/sigc++.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(SIGC++CONFIG sigc++config.h)
|
||||
_GTK2_FIND_LIBRARY (SIGC++ sigc true true)
|
||||
_GTK2_ADD_TARGET (SIGC++)
|
||||
# Since sigc++ 2.5.1 c++11 support is required
|
||||
if(GTK2_SIGC++CONFIG_INCLUDE_DIR)
|
||||
_GTK2_SIGCXX_GET_VERSION(GTK2_SIGC++_VERSION_MAJOR
|
||||
GTK2_SIGC++_VERSION_MINOR
|
||||
GTK2_SIGC++_VERSION_MICRO
|
||||
${GTK2_SIGC++CONFIG_INCLUDE_DIR}/sigc++config.h)
|
||||
if(NOT ${GTK2_SIGC++_VERSION_MAJOR}.${GTK2_SIGC++_VERSION_MINOR}.${GTK2_SIGC++_VERSION_MICRO} VERSION_LESS 2.5.1)
|
||||
# These are the features needed by clients in order to include the
|
||||
# project headers:
|
||||
set_property(TARGET GTK2::sigc++
|
||||
PROPERTY INTERFACE_COMPILE_FEATURES cxx_alias_templates
|
||||
cxx_auto_type
|
||||
cxx_decltype
|
||||
cxx_deleted_functions
|
||||
cxx_noexcept
|
||||
cxx_nullptr
|
||||
cxx_right_angle_brackets
|
||||
cxx_rvalue_references
|
||||
cxx_variadic_templates)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GLIBMM glibmm.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(GLIBMMCONFIG glibmmconfig.h)
|
||||
_GTK2_FIND_LIBRARY (GLIBMM glibmm true true)
|
||||
_GTK2_ADD_TARGET (GLIBMM GTK2_DEPENDS gobject sigc++ glib)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GIOMM giomm.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(GIOMMCONFIG giommconfig.h)
|
||||
_GTK2_FIND_LIBRARY (GIOMM giomm true true)
|
||||
_GTK2_ADD_TARGET (GIOMM GTK2_DEPENDS gio glibmm gobject sigc++ glib)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(ATKMM atkmm.h)
|
||||
_GTK2_FIND_LIBRARY (ATKMM atkmm true true)
|
||||
_GTK2_ADD_TARGET (ATKMM GTK2_DEPENDS atk glibmm gobject sigc++ glib)
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(CAIROMM cairomm/cairomm.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(CAIROMMCONFIG cairommconfig.h)
|
||||
_GTK2_FIND_LIBRARY (CAIROMM cairomm true true)
|
||||
_GTK2_ADD_TARGET (CAIROMM GTK2_DEPENDS cairo sigc++
|
||||
OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
|
||||
${GTK2_FONTCONFIG_INCLUDE_DIR}
|
||||
${GTK2_X11_INCLUDE_DIR})
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(PANGOMM pangomm.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(PANGOMMCONFIG pangommconfig.h)
|
||||
_GTK2_FIND_LIBRARY (PANGOMM pangomm true true)
|
||||
_GTK2_ADD_TARGET (PANGOMM GTK2_DEPENDS glibmm sigc++ pango gobject glib
|
||||
GTK2_OPTIONAL_DEPENDS cairomm pangocairo cairo
|
||||
OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
|
||||
${GTK2_FONTCONFIG_INCLUDE_DIR}
|
||||
${GTK2_X11_INCLUDE_DIR})
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GDKMM gdkmm.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(GDKMMCONFIG gdkmmconfig.h)
|
||||
_GTK2_FIND_LIBRARY (GDKMM gdkmm true true)
|
||||
_GTK2_ADD_TARGET (GDKMM GTK2_DEPENDS pangomm gtk glibmm sigc++ gdk atk pangoft2 gdk_pixbuf pango gobject glib
|
||||
GTK2_OPTIONAL_DEPENDS giomm cairomm gio pangocairo cairo
|
||||
OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
|
||||
${GTK2_FONTCONFIG_INCLUDE_DIR}
|
||||
${GTK2_X11_INCLUDE_DIR})
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GTKMM gtkmm.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(GTKMMCONFIG gtkmmconfig.h)
|
||||
_GTK2_FIND_LIBRARY (GTKMM gtkmm true true)
|
||||
_GTK2_ADD_TARGET (GTKMM GTK2_DEPENDS atkmm gdkmm pangomm gtk glibmm sigc++ gdk atk pangoft2 gdk_pixbuf pango gthread gobject glib
|
||||
GTK2_OPTIONAL_DEPENDS giomm cairomm gio pangocairo cairo
|
||||
OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
|
||||
${GTK2_FONTCONFIG_INCLUDE_DIR}
|
||||
${GTK2_X11_INCLUDE_DIR})
|
||||
|
||||
elseif(_GTK2_component STREQUAL "glade")
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GLADE glade/glade.h)
|
||||
_GTK2_FIND_LIBRARY (GLADE glade false true)
|
||||
_GTK2_ADD_TARGET (GLADE GTK2_DEPENDS gtk gdk atk gio pangoft2 gdk_pixbuf pango gobject glib
|
||||
GTK2_OPTIONAL_DEPENDS pangocairo cairo
|
||||
OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
|
||||
${GTK2_FONTCONFIG_INCLUDE_DIR}
|
||||
${GTK2_X11_INCLUDE_DIR})
|
||||
|
||||
elseif(_GTK2_component STREQUAL "glademm")
|
||||
|
||||
_GTK2_FIND_INCLUDE_DIR(GLADEMM libglademm.h)
|
||||
_GTK2_FIND_INCLUDE_DIR(GLADEMMCONFIG libglademmconfig.h)
|
||||
_GTK2_FIND_LIBRARY (GLADEMM glademm true true)
|
||||
_GTK2_ADD_TARGET (GLADEMM GTK2_DEPENDS gtkmm glade atkmm gdkmm giomm pangomm glibmm sigc++ gtk gdk atk pangoft2 gdk_pixbuf pango gthread gobject glib
|
||||
GTK2_OPTIONAL_DEPENDS giomm cairomm gio pangocairo cairo
|
||||
OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
|
||||
${GTK2_FONTCONFIG_INCLUDE_DIR}
|
||||
${GTK2_X11_INCLUDE_DIR})
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown GTK2 component ${_component}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
#
|
||||
# Solve for the GTK2 version if we haven't already
|
||||
#
|
||||
if(NOT GTK2_FIND_VERSION AND GTK2_GTK_INCLUDE_DIR)
|
||||
_GTK2_GET_VERSION(GTK2_MAJOR_VERSION
|
||||
GTK2_MINOR_VERSION
|
||||
GTK2_PATCH_VERSION
|
||||
${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h)
|
||||
set(GTK2_VERSION ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION})
|
||||
endif()
|
||||
|
||||
#
|
||||
# Try to enforce components
|
||||
#
|
||||
|
||||
set(_GTK2_did_we_find_everything true) # This gets set to GTK2_FOUND
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
|
||||
foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
|
||||
string(TOUPPER ${_GTK2_component} _COMPONENT_UPPER)
|
||||
|
||||
set(GTK2_${_COMPONENT_UPPER}_FIND_QUIETLY ${GTK2_FIND_QUIETLY})
|
||||
|
||||
set(FPHSA_NAME_MISMATCHED 1)
|
||||
if(_GTK2_component STREQUAL "gtk")
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found."
|
||||
GTK2_GTK_LIBRARY
|
||||
GTK2_GTK_INCLUDE_DIR
|
||||
|
||||
GTK2_GDK_INCLUDE_DIR
|
||||
GTK2_GDKCONFIG_INCLUDE_DIR
|
||||
GTK2_GDK_LIBRARY
|
||||
|
||||
GTK2_GLIB_INCLUDE_DIR
|
||||
GTK2_GLIBCONFIG_INCLUDE_DIR
|
||||
GTK2_GLIB_LIBRARY
|
||||
)
|
||||
elseif(_GTK2_component STREQUAL "gtkmm")
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found."
|
||||
GTK2_GTKMM_LIBRARY
|
||||
GTK2_GTKMM_INCLUDE_DIR
|
||||
GTK2_GTKMMCONFIG_INCLUDE_DIR
|
||||
|
||||
GTK2_GDKMM_INCLUDE_DIR
|
||||
GTK2_GDKMMCONFIG_INCLUDE_DIR
|
||||
GTK2_GDKMM_LIBRARY
|
||||
|
||||
GTK2_GLIBMM_INCLUDE_DIR
|
||||
GTK2_GLIBMMCONFIG_INCLUDE_DIR
|
||||
GTK2_GLIBMM_LIBRARY
|
||||
|
||||
FREETYPE_INCLUDE_DIR_ft2build
|
||||
FREETYPE_INCLUDE_DIR_freetype2
|
||||
)
|
||||
elseif(_GTK2_component STREQUAL "glade")
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found."
|
||||
GTK2_GLADE_LIBRARY
|
||||
GTK2_GLADE_INCLUDE_DIR
|
||||
)
|
||||
elseif(_GTK2_component STREQUAL "glademm")
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found."
|
||||
GTK2_GLADEMM_LIBRARY
|
||||
GTK2_GLADEMM_INCLUDE_DIR
|
||||
GTK2_GLADEMMCONFIG_INCLUDE_DIR
|
||||
)
|
||||
endif()
|
||||
unset(FPHSA_NAME_MISMATCHED)
|
||||
|
||||
if(NOT GTK2_${_COMPONENT_UPPER}_FOUND)
|
||||
set(_GTK2_did_we_find_everything false)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(GTK2_USE_IMPORTED_TARGETS)
|
||||
set(GTK2_LIBRARIES ${GTK2_TARGETS})
|
||||
endif()
|
||||
|
||||
|
||||
if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED)
|
||||
set(GTK2_FOUND true)
|
||||
else()
|
||||
# Unset our variables.
|
||||
set(GTK2_FOUND false)
|
||||
set(GTK2_VERSION)
|
||||
set(GTK2_VERSION_MAJOR)
|
||||
set(GTK2_VERSION_MINOR)
|
||||
set(GTK2_VERSION_PATCH)
|
||||
set(GTK2_INCLUDE_DIRS)
|
||||
set(GTK2_LIBRARIES)
|
||||
set(GTK2_TARGETS)
|
||||
set(GTK2_DEFINITIONS)
|
||||
endif()
|
||||
|
||||
if(GTK2_INCLUDE_DIRS)
|
||||
list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS)
|
||||
endif()
|
|
@ -0,0 +1,466 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindPackageHandleStandardArgs
|
||||
-----------------------------
|
||||
|
||||
This module provides a function intended to be used in :ref:`Find Modules`
|
||||
implementing :command:`find_package(<PackageName>)` calls. It handles the
|
||||
``REQUIRED``, ``QUIET`` and version-related arguments of ``find_package``.
|
||||
It also sets the ``<PackageName>_FOUND`` variable. The package is
|
||||
considered found if all variables listed contain valid results, e.g.
|
||||
valid filepaths.
|
||||
|
||||
.. command:: find_package_handle_standard_args
|
||||
|
||||
There are two signatures::
|
||||
|
||||
find_package_handle_standard_args(<PackageName>
|
||||
(DEFAULT_MSG|<custom-failure-message>)
|
||||
<required-var>...
|
||||
)
|
||||
|
||||
find_package_handle_standard_args(<PackageName>
|
||||
[FOUND_VAR <result-var>]
|
||||
[REQUIRED_VARS <required-var>...]
|
||||
[VERSION_VAR <version-var>]
|
||||
[HANDLE_COMPONENTS]
|
||||
[CONFIG_MODE]
|
||||
[NAME_MISMATCHED]
|
||||
[REASON_FAILURE_MESSAGE <reason-failure-message>]
|
||||
[FAIL_MESSAGE <custom-failure-message>]
|
||||
)
|
||||
|
||||
The ``<PackageName>_FOUND`` variable will be set to ``TRUE`` if all
|
||||
the variables ``<required-var>...`` are valid and any optional
|
||||
constraints are satisfied, and ``FALSE`` otherwise. A success or
|
||||
failure message may be displayed based on the results and on
|
||||
whether the ``REQUIRED`` and/or ``QUIET`` option was given to
|
||||
the :command:`find_package` call.
|
||||
|
||||
The options are:
|
||||
|
||||
``(DEFAULT_MSG|<custom-failure-message>)``
|
||||
In the simple signature this specifies the failure message.
|
||||
Use ``DEFAULT_MSG`` to ask for a default message to be computed
|
||||
(recommended). Not valid in the full signature.
|
||||
|
||||
``FOUND_VAR <result-var>``
|
||||
Obsolete. Specifies either ``<PackageName>_FOUND`` or
|
||||
``<PACKAGENAME>_FOUND`` as the result variable. This exists only
|
||||
for compatibility with older versions of CMake and is now ignored.
|
||||
Result variables of both names are always set for compatibility.
|
||||
|
||||
``REQUIRED_VARS <required-var>...``
|
||||
Specify the variables which are required for this package.
|
||||
These may be named in the generated failure message asking the
|
||||
user to set the missing variable values. Therefore these should
|
||||
typically be cache entries such as ``FOO_LIBRARY`` and not output
|
||||
variables like ``FOO_LIBRARIES``. This option is mandatory if
|
||||
``HANDLE_COMPONENTS`` is not specified.
|
||||
|
||||
``VERSION_VAR <version-var>``
|
||||
Specify the name of a variable that holds the version of the package
|
||||
that has been found. This version will be checked against the
|
||||
(potentially) specified required version given to the
|
||||
:command:`find_package` call, including its ``EXACT`` option.
|
||||
The default messages include information about the required
|
||||
version and the version which has been actually found, both
|
||||
if the version is ok or not.
|
||||
|
||||
``HANDLE_COMPONENTS``
|
||||
Enable handling of package components. In this case, the command
|
||||
will report which components have been found and which are missing,
|
||||
and the ``<PackageName>_FOUND`` variable will be set to ``FALSE``
|
||||
if any of the required components (i.e. not the ones listed after
|
||||
the ``OPTIONAL_COMPONENTS`` option of :command:`find_package`) are
|
||||
missing.
|
||||
|
||||
``CONFIG_MODE``
|
||||
Specify that the calling find module is a wrapper around a
|
||||
call to ``find_package(<PackageName> NO_MODULE)``. This implies
|
||||
a ``VERSION_VAR`` value of ``<PackageName>_VERSION``. The command
|
||||
will automatically check whether the package configuration file
|
||||
was found.
|
||||
|
||||
``REASON_FAILURE_MESSAGE <reason-failure-message>``
|
||||
Specify a custom message of the reason for the failure which will be
|
||||
appended to the default generated message.
|
||||
|
||||
``FAIL_MESSAGE <custom-failure-message>``
|
||||
Specify a custom failure message instead of using the default
|
||||
generated message. Not recommended.
|
||||
|
||||
``NAME_MISMATCHED``
|
||||
Indicate that the ``<PackageName>`` does not match
|
||||
``${CMAKE_FIND_PACKAGE_NAME}``. This is usually a mistake and raises a
|
||||
warning, but it may be intentional for usage of the command for components
|
||||
of a larger package.
|
||||
|
||||
Example for the simple signature:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package_handle_standard_args(LibXml2 DEFAULT_MSG
|
||||
LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)
|
||||
|
||||
The ``LibXml2`` package is considered to be found if both
|
||||
``LIBXML2_LIBRARY`` and ``LIBXML2_INCLUDE_DIR`` are valid.
|
||||
Then also ``LibXml2_FOUND`` is set to ``TRUE``. If it is not found
|
||||
and ``REQUIRED`` was used, it fails with a
|
||||
:command:`message(FATAL_ERROR)`, independent whether ``QUIET`` was
|
||||
used or not. If it is found, success will be reported, including
|
||||
the content of the first ``<required-var>``. On repeated CMake runs,
|
||||
the same message will not be printed again.
|
||||
|
||||
.. note::
|
||||
|
||||
If ``<PackageName>`` does not match ``CMAKE_FIND_PACKAGE_NAME`` for the
|
||||
calling module, a warning that there is a mismatch is given. The
|
||||
``FPHSA_NAME_MISMATCHED`` variable may be set to bypass the warning if using
|
||||
the old signature and the ``NAME_MISMATCHED`` argument using the new
|
||||
signature. To avoid forcing the caller to require newer versions of CMake for
|
||||
usage, the variable's value will be used if defined when the
|
||||
``NAME_MISMATCHED`` argument is not passed for the new signature (but using
|
||||
both is an error)..
|
||||
|
||||
Example for the full signature:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package_handle_standard_args(LibArchive
|
||||
REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR
|
||||
VERSION_VAR LibArchive_VERSION)
|
||||
|
||||
In this case, the ``LibArchive`` package is considered to be found if
|
||||
both ``LibArchive_LIBRARY`` and ``LibArchive_INCLUDE_DIR`` are valid.
|
||||
Also the version of ``LibArchive`` will be checked by using the version
|
||||
contained in ``LibArchive_VERSION``. Since no ``FAIL_MESSAGE`` is given,
|
||||
the default messages will be printed.
|
||||
|
||||
Another example for the full signature:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4)
|
||||
find_package_handle_standard_args(Automoc4 CONFIG_MODE)
|
||||
|
||||
In this case, a ``FindAutmoc4.cmake`` module wraps a call to
|
||||
``find_package(Automoc4 NO_MODULE)`` and adds an additional search
|
||||
directory for ``automoc4``. Then the call to
|
||||
``find_package_handle_standard_args`` produces a proper success/failure
|
||||
message.
|
||||
#]=======================================================================]
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageMessage.cmake)
|
||||
|
||||
# internal helper macro
|
||||
macro(_FPHSA_FAILURE_MESSAGE _msg)
|
||||
set (__msg "${_msg}")
|
||||
if (FPHSA_REASON_FAILURE_MESSAGE)
|
||||
string(APPEND __msg "\n Reason given by package: ${FPHSA_REASON_FAILURE_MESSAGE}\n")
|
||||
endif()
|
||||
if (${_NAME}_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "${__msg}")
|
||||
else ()
|
||||
if (NOT ${_NAME}_FIND_QUIETLY)
|
||||
message(STATUS "${__msg}")
|
||||
endif ()
|
||||
endif ()
|
||||
endmacro()
|
||||
|
||||
|
||||
# internal helper macro to generate the failure message when used in CONFIG_MODE:
|
||||
macro(_FPHSA_HANDLE_FAILURE_CONFIG_MODE)
|
||||
# <PackageName>_CONFIG is set, but FOUND is false, this means that some other of the REQUIRED_VARS was not found:
|
||||
if(${_NAME}_CONFIG)
|
||||
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: missing:${MISSING_VARS} (found ${${_NAME}_CONFIG} ${VERSION_MSG})")
|
||||
else()
|
||||
# If _CONSIDERED_CONFIGS is set, the config-file has been found, but no suitable version.
|
||||
# List them all in the error message:
|
||||
if(${_NAME}_CONSIDERED_CONFIGS)
|
||||
set(configsText "")
|
||||
list(LENGTH ${_NAME}_CONSIDERED_CONFIGS configsCount)
|
||||
math(EXPR configsCount "${configsCount} - 1")
|
||||
foreach(currentConfigIndex RANGE ${configsCount})
|
||||
list(GET ${_NAME}_CONSIDERED_CONFIGS ${currentConfigIndex} filename)
|
||||
list(GET ${_NAME}_CONSIDERED_VERSIONS ${currentConfigIndex} version)
|
||||
string(APPEND configsText "\n ${filename} (version ${version})")
|
||||
endforeach()
|
||||
if (${_NAME}_NOT_FOUND_MESSAGE)
|
||||
if (FPHSA_REASON_FAILURE_MESSAGE)
|
||||
string(PREPEND FPHSA_REASON_FAILURE_MESSAGE "${${_NAME}_NOT_FOUND_MESSAGE}\n ")
|
||||
else()
|
||||
set(FPHSA_REASON_FAILURE_MESSAGE "${${_NAME}_NOT_FOUND_MESSAGE}")
|
||||
endif()
|
||||
else()
|
||||
string(APPEND configsText "\n")
|
||||
endif()
|
||||
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} ${VERSION_MSG}, checked the following files:${configsText}")
|
||||
|
||||
else()
|
||||
# Simple case: No Config-file was found at all:
|
||||
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: found neither ${_NAME}Config.cmake nor ${_NAME_LOWER}-config.cmake ${VERSION_MSG}")
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
|
||||
function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG)
|
||||
|
||||
# Set up the arguments for `cmake_parse_arguments`.
|
||||
set(options CONFIG_MODE HANDLE_COMPONENTS NAME_MISMATCHED)
|
||||
set(oneValueArgs FAIL_MESSAGE REASON_FAILURE_MESSAGE VERSION_VAR FOUND_VAR)
|
||||
set(multiValueArgs REQUIRED_VARS)
|
||||
|
||||
# Check whether we are in 'simple' or 'extended' mode:
|
||||
set(_KEYWORDS_FOR_EXTENDED_MODE ${options} ${oneValueArgs} ${multiValueArgs} )
|
||||
list(FIND _KEYWORDS_FOR_EXTENDED_MODE "${_FIRST_ARG}" INDEX)
|
||||
|
||||
unset(FPHSA_NAME_MISMATCHED_override)
|
||||
if (DEFINED FPHSA_NAME_MISMATCHED)
|
||||
# If the variable NAME_MISMATCHED variable is set, error if it is passed as
|
||||
# an argument. The former is for old signatures, the latter is for new
|
||||
# signatures.
|
||||
list(FIND ARGN "NAME_MISMATCHED" name_mismatched_idx)
|
||||
if (NOT name_mismatched_idx EQUAL "-1")
|
||||
message(FATAL_ERROR
|
||||
"The `NAME_MISMATCHED` argument may only be specified by the argument or "
|
||||
"the variable, not both.")
|
||||
endif ()
|
||||
|
||||
# But use the variable if it is not an argument to avoid forcing minimum
|
||||
# CMake version bumps for calling modules.
|
||||
set(FPHSA_NAME_MISMATCHED_override "${FPHSA_NAME_MISMATCHED}")
|
||||
endif ()
|
||||
|
||||
if(${INDEX} EQUAL -1)
|
||||
set(FPHSA_FAIL_MESSAGE ${_FIRST_ARG})
|
||||
set(FPHSA_REQUIRED_VARS ${ARGN})
|
||||
set(FPHSA_VERSION_VAR)
|
||||
else()
|
||||
cmake_parse_arguments(FPHSA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${_FIRST_ARG} ${ARGN})
|
||||
|
||||
if(FPHSA_UNPARSED_ARGUMENTS)
|
||||
message(FATAL_ERROR "Unknown keywords given to FIND_PACKAGE_HANDLE_STANDARD_ARGS(): \"${FPHSA_UNPARSED_ARGUMENTS}\"")
|
||||
endif()
|
||||
|
||||
if(NOT FPHSA_FAIL_MESSAGE)
|
||||
set(FPHSA_FAIL_MESSAGE "DEFAULT_MSG")
|
||||
endif()
|
||||
|
||||
# In config-mode, we rely on the variable <PackageName>_CONFIG, which is set by find_package()
|
||||
# when it successfully found the config-file, including version checking:
|
||||
if(FPHSA_CONFIG_MODE)
|
||||
list(INSERT FPHSA_REQUIRED_VARS 0 ${_NAME}_CONFIG)
|
||||
list(REMOVE_DUPLICATES FPHSA_REQUIRED_VARS)
|
||||
set(FPHSA_VERSION_VAR ${_NAME}_VERSION)
|
||||
endif()
|
||||
|
||||
if(NOT FPHSA_REQUIRED_VARS AND NOT FPHSA_HANDLE_COMPONENTS)
|
||||
message(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (DEFINED FPHSA_NAME_MISMATCHED_override)
|
||||
set(FPHSA_NAME_MISMATCHED "${FPHSA_NAME_MISMATCHED_override}")
|
||||
endif ()
|
||||
|
||||
if (DEFINED CMAKE_FIND_PACKAGE_NAME
|
||||
AND NOT FPHSA_NAME_MISMATCHED
|
||||
AND NOT _NAME STREQUAL CMAKE_FIND_PACKAGE_NAME)
|
||||
message(AUTHOR_WARNING
|
||||
"The package name passed to `find_package_handle_standard_args` "
|
||||
"(${_NAME}) does not match the name of the calling package "
|
||||
"(${CMAKE_FIND_PACKAGE_NAME}). This can lead to problems in calling "
|
||||
"code that expects `find_package` result variables (e.g., `_FOUND`) "
|
||||
"to follow a certain pattern.")
|
||||
endif ()
|
||||
|
||||
# now that we collected all arguments, process them
|
||||
|
||||
if("x${FPHSA_FAIL_MESSAGE}" STREQUAL "xDEFAULT_MSG")
|
||||
set(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}")
|
||||
endif()
|
||||
|
||||
if (FPHSA_REQUIRED_VARS)
|
||||
list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR)
|
||||
endif()
|
||||
|
||||
string(TOUPPER ${_NAME} _NAME_UPPER)
|
||||
string(TOLOWER ${_NAME} _NAME_LOWER)
|
||||
|
||||
if(FPHSA_FOUND_VAR)
|
||||
set(_FOUND_VAR_UPPER ${_NAME_UPPER}_FOUND)
|
||||
set(_FOUND_VAR_MIXED ${_NAME}_FOUND)
|
||||
if(FPHSA_FOUND_VAR STREQUAL _FOUND_VAR_MIXED OR FPHSA_FOUND_VAR STREQUAL _FOUND_VAR_UPPER)
|
||||
set(_FOUND_VAR ${FPHSA_FOUND_VAR})
|
||||
else()
|
||||
message(FATAL_ERROR "The argument for FOUND_VAR is \"${FPHSA_FOUND_VAR}\", but only \"${_FOUND_VAR_MIXED}\" and \"${_FOUND_VAR_UPPER}\" are valid names.")
|
||||
endif()
|
||||
else()
|
||||
set(_FOUND_VAR ${_NAME_UPPER}_FOUND)
|
||||
endif()
|
||||
|
||||
# collect all variables which were not found, so they can be printed, so the
|
||||
# user knows better what went wrong (#6375)
|
||||
set(MISSING_VARS "")
|
||||
set(DETAILS "")
|
||||
# check if all passed variables are valid
|
||||
set(FPHSA_FOUND_${_NAME} TRUE)
|
||||
foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS})
|
||||
if(NOT ${_CURRENT_VAR})
|
||||
set(FPHSA_FOUND_${_NAME} FALSE)
|
||||
string(APPEND MISSING_VARS " ${_CURRENT_VAR}")
|
||||
else()
|
||||
string(APPEND DETAILS "[${${_CURRENT_VAR}}]")
|
||||
endif()
|
||||
endforeach()
|
||||
if(FPHSA_FOUND_${_NAME})
|
||||
set(${_NAME}_FOUND TRUE)
|
||||
set(${_NAME_UPPER}_FOUND TRUE)
|
||||
else()
|
||||
set(${_NAME}_FOUND FALSE)
|
||||
set(${_NAME_UPPER}_FOUND FALSE)
|
||||
endif()
|
||||
|
||||
# component handling
|
||||
unset(FOUND_COMPONENTS_MSG)
|
||||
unset(MISSING_COMPONENTS_MSG)
|
||||
|
||||
if(FPHSA_HANDLE_COMPONENTS)
|
||||
foreach(comp ${${_NAME}_FIND_COMPONENTS})
|
||||
if(${_NAME}_${comp}_FOUND)
|
||||
|
||||
if(NOT DEFINED FOUND_COMPONENTS_MSG)
|
||||
set(FOUND_COMPONENTS_MSG "found components:")
|
||||
endif()
|
||||
string(APPEND FOUND_COMPONENTS_MSG " ${comp}")
|
||||
|
||||
else()
|
||||
|
||||
if(NOT DEFINED MISSING_COMPONENTS_MSG)
|
||||
set(MISSING_COMPONENTS_MSG "missing components:")
|
||||
endif()
|
||||
string(APPEND MISSING_COMPONENTS_MSG " ${comp}")
|
||||
|
||||
if(${_NAME}_FIND_REQUIRED_${comp})
|
||||
set(${_NAME}_FOUND FALSE)
|
||||
string(APPEND MISSING_VARS " ${comp}")
|
||||
endif()
|
||||
|
||||
endif()
|
||||
endforeach()
|
||||
set(COMPONENT_MSG "${FOUND_COMPONENTS_MSG} ${MISSING_COMPONENTS_MSG}")
|
||||
string(APPEND DETAILS "[c${COMPONENT_MSG}]")
|
||||
endif()
|
||||
|
||||
# version handling:
|
||||
set(VERSION_MSG "")
|
||||
set(VERSION_OK TRUE)
|
||||
|
||||
# check with DEFINED here as the requested or found version may be "0"
|
||||
if (DEFINED ${_NAME}_FIND_VERSION)
|
||||
if(DEFINED ${FPHSA_VERSION_VAR})
|
||||
set(_FOUND_VERSION ${${FPHSA_VERSION_VAR}})
|
||||
|
||||
if(${_NAME}_FIND_VERSION_EXACT) # exact version required
|
||||
# count the dots in the version string
|
||||
string(REGEX REPLACE "[^.]" "" _VERSION_DOTS "${_FOUND_VERSION}")
|
||||
# add one dot because there is one dot more than there are components
|
||||
string(LENGTH "${_VERSION_DOTS}." _VERSION_DOTS)
|
||||
if (_VERSION_DOTS GREATER ${_NAME}_FIND_VERSION_COUNT)
|
||||
# Because of the C++ implementation of find_package() ${_NAME}_FIND_VERSION_COUNT
|
||||
# is at most 4 here. Therefore a simple lookup table is used.
|
||||
if (${_NAME}_FIND_VERSION_COUNT EQUAL 1)
|
||||
set(_VERSION_REGEX "[^.]*")
|
||||
elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 2)
|
||||
set(_VERSION_REGEX "[^.]*\\.[^.]*")
|
||||
elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 3)
|
||||
set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*")
|
||||
else ()
|
||||
set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*\\.[^.]*")
|
||||
endif ()
|
||||
string(REGEX REPLACE "^(${_VERSION_REGEX})\\..*" "\\1" _VERSION_HEAD "${_FOUND_VERSION}")
|
||||
unset(_VERSION_REGEX)
|
||||
if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _VERSION_HEAD)
|
||||
set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
|
||||
set(VERSION_OK FALSE)
|
||||
else ()
|
||||
set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")")
|
||||
endif ()
|
||||
unset(_VERSION_HEAD)
|
||||
else ()
|
||||
if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _FOUND_VERSION)
|
||||
set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
|
||||
set(VERSION_OK FALSE)
|
||||
else ()
|
||||
set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")")
|
||||
endif ()
|
||||
endif ()
|
||||
unset(_VERSION_DOTS)
|
||||
|
||||
else() # minimum version specified:
|
||||
if (${_NAME}_FIND_VERSION VERSION_GREATER _FOUND_VERSION)
|
||||
set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is at least \"${${_NAME}_FIND_VERSION}\"")
|
||||
set(VERSION_OK FALSE)
|
||||
else ()
|
||||
set(VERSION_MSG "(found suitable version \"${_FOUND_VERSION}\", minimum required is \"${${_NAME}_FIND_VERSION}\")")
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
else()
|
||||
|
||||
# if the package was not found, but a version was given, add that to the output:
|
||||
if(${_NAME}_FIND_VERSION_EXACT)
|
||||
set(VERSION_MSG "(Required is exact version \"${${_NAME}_FIND_VERSION}\")")
|
||||
else()
|
||||
set(VERSION_MSG "(Required is at least version \"${${_NAME}_FIND_VERSION}\")")
|
||||
endif()
|
||||
|
||||
endif()
|
||||
else ()
|
||||
# Check with DEFINED as the found version may be 0.
|
||||
if(DEFINED ${FPHSA_VERSION_VAR})
|
||||
set(VERSION_MSG "(found version \"${${FPHSA_VERSION_VAR}}\")")
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if(VERSION_OK)
|
||||
string(APPEND DETAILS "[v${${FPHSA_VERSION_VAR}}(${${_NAME}_FIND_VERSION})]")
|
||||
else()
|
||||
set(${_NAME}_FOUND FALSE)
|
||||
endif()
|
||||
|
||||
|
||||
# print the result:
|
||||
if (${_NAME}_FOUND)
|
||||
FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_FIRST_REQUIRED_VAR}} ${VERSION_MSG} ${COMPONENT_MSG}" "${DETAILS}")
|
||||
else ()
|
||||
|
||||
if(FPHSA_CONFIG_MODE)
|
||||
_FPHSA_HANDLE_FAILURE_CONFIG_MODE()
|
||||
else()
|
||||
if(NOT VERSION_OK)
|
||||
set(RESULT_MSG)
|
||||
if (_FIRST_REQUIRED_VAR)
|
||||
string (APPEND RESULT_MSG "found ${${_FIRST_REQUIRED_VAR}}")
|
||||
endif()
|
||||
if (COMPONENT_MSG)
|
||||
if (RESULT_MSG)
|
||||
string (APPEND RESULT_MSG ", ")
|
||||
endif()
|
||||
string (APPEND RESULT_MSG "${FOUND_COMPONENTS_MSG}")
|
||||
endif()
|
||||
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (${RESULT_MSG})")
|
||||
else()
|
||||
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing:${MISSING_VARS}) ${VERSION_MSG}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endif ()
|
||||
|
||||
set(${_NAME}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE)
|
||||
set(${_NAME_UPPER}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE)
|
||||
endfunction()
|
|
@ -0,0 +1,48 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindPackageMessage
|
||||
------------------
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package_message(<name> "message for user" "find result details")
|
||||
|
||||
This function is intended to be used in FindXXX.cmake modules files.
|
||||
It will print a message once for each unique find result. This is
|
||||
useful for telling the user where a package was found. The first
|
||||
argument specifies the name (XXX) of the package. The second argument
|
||||
specifies the message to display. The third argument lists details
|
||||
about the find result so that if they change the message will be
|
||||
displayed again. The macro also obeys the QUIET argument to the
|
||||
find_package command.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
if(X11_FOUND)
|
||||
find_package_message(X11 "Found X11: ${X11_X11_LIB}"
|
||||
"[${X11_X11_LIB}][${X11_INCLUDE_DIR}]")
|
||||
else()
|
||||
...
|
||||
endif()
|
||||
#]=======================================================================]
|
||||
|
||||
function(find_package_message pkg msg details)
|
||||
# Avoid printing a message repeatedly for the same find result.
|
||||
if(NOT ${pkg}_FIND_QUIETLY)
|
||||
string(REPLACE "\n" "" details "${details}")
|
||||
set(DETAILS_VAR FIND_PACKAGE_MESSAGE_DETAILS_${pkg})
|
||||
if(NOT "${details}" STREQUAL "${${DETAILS_VAR}}")
|
||||
# The message has not yet been printed.
|
||||
message(STATUS "${msg}")
|
||||
|
||||
# Save the find details in the cache to avoid printing the same
|
||||
# message again.
|
||||
set("${DETAILS_VAR}" "${details}"
|
||||
CACHE INTERNAL "Details about finding ${pkg}")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
|
@ -0,0 +1,80 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
SelectLibraryConfigurations
|
||||
---------------------------
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
select_library_configurations(basename)
|
||||
|
||||
This macro takes a library base name as an argument, and will choose
|
||||
good values for the variables
|
||||
|
||||
::
|
||||
|
||||
basename_LIBRARY
|
||||
basename_LIBRARIES
|
||||
basename_LIBRARY_DEBUG
|
||||
basename_LIBRARY_RELEASE
|
||||
|
||||
depending on what has been found and set.
|
||||
|
||||
If only ``basename_LIBRARY_RELEASE`` is defined, ``basename_LIBRARY`` will
|
||||
be set to the release value, and ``basename_LIBRARY_DEBUG`` will be set
|
||||
to ``basename_LIBRARY_DEBUG-NOTFOUND``. If only ``basename_LIBRARY_DEBUG``
|
||||
is defined, then ``basename_LIBRARY`` will take the debug value, and
|
||||
``basename_LIBRARY_RELEASE`` will be set to ``basename_LIBRARY_RELEASE-NOTFOUND``.
|
||||
|
||||
If the generator supports configuration types, then ``basename_LIBRARY``
|
||||
and ``basename_LIBRARIES`` will be set with debug and optimized flags
|
||||
specifying the library to be used for the given configuration. If no
|
||||
build type has been set or the generator in use does not support
|
||||
configuration types, then ``basename_LIBRARY`` and ``basename_LIBRARIES``
|
||||
will take only the release value, or the debug value if the release one
|
||||
is not set.
|
||||
#]=======================================================================]
|
||||
|
||||
# This macro was adapted from the FindQt4 CMake module and is maintained by Will
|
||||
# Dicharry <wdicharry@stellarscience.com>.
|
||||
|
||||
macro(select_library_configurations basename)
|
||||
if(NOT ${basename}_LIBRARY_RELEASE)
|
||||
set(${basename}_LIBRARY_RELEASE "${basename}_LIBRARY_RELEASE-NOTFOUND" CACHE FILEPATH "Path to a library.")
|
||||
endif()
|
||||
if(NOT ${basename}_LIBRARY_DEBUG)
|
||||
set(${basename}_LIBRARY_DEBUG "${basename}_LIBRARY_DEBUG-NOTFOUND" CACHE FILEPATH "Path to a library.")
|
||||
endif()
|
||||
|
||||
get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if( ${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE AND
|
||||
NOT ${basename}_LIBRARY_DEBUG STREQUAL ${basename}_LIBRARY_RELEASE AND
|
||||
( _isMultiConfig OR CMAKE_BUILD_TYPE ) )
|
||||
# if the generator is multi-config or if CMAKE_BUILD_TYPE is set for
|
||||
# single-config generators, set optimized and debug libraries
|
||||
set( ${basename}_LIBRARY "" )
|
||||
foreach( _libname IN LISTS ${basename}_LIBRARY_RELEASE )
|
||||
list( APPEND ${basename}_LIBRARY optimized "${_libname}" )
|
||||
endforeach()
|
||||
foreach( _libname IN LISTS ${basename}_LIBRARY_DEBUG )
|
||||
list( APPEND ${basename}_LIBRARY debug "${_libname}" )
|
||||
endforeach()
|
||||
elseif( ${basename}_LIBRARY_RELEASE )
|
||||
set( ${basename}_LIBRARY ${${basename}_LIBRARY_RELEASE} )
|
||||
elseif( ${basename}_LIBRARY_DEBUG )
|
||||
set( ${basename}_LIBRARY ${${basename}_LIBRARY_DEBUG} )
|
||||
else()
|
||||
set( ${basename}_LIBRARY "${basename}_LIBRARY-NOTFOUND")
|
||||
endif()
|
||||
|
||||
set( ${basename}_LIBRARIES "${${basename}_LIBRARY}" )
|
||||
|
||||
if( ${basename}_LIBRARY )
|
||||
set( ${basename}_FOUND TRUE )
|
||||
endif()
|
||||
|
||||
mark_as_advanced( ${basename}_LIBRARY_RELEASE
|
||||
${basename}_LIBRARY_DEBUG
|
||||
)
|
||||
endmacro()
|
|
@ -1,6 +1,6 @@
|
|||
diff -ruN ./CMakeLists.txt ../c/CMakeLists.txt
|
||||
diff -ruN ./CMakeLists.txt ../b/CMakeLists.txt
|
||||
--- ./CMakeLists.txt 2012-03-26 02:50:49.000000000 +0200
|
||||
+++ ../c/CMakeLists.txt 2020-09-03 16:25:55.870086658 +0200
|
||||
+++ ../b/CMakeLists.txt 2020-09-02 22:37:20.707393347 +0200
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
project (vsUTCS)
|
||||
|
@ -10,7 +10,56 @@ diff -ruN ./CMakeLists.txt ../c/CMakeLists.txt
|
|||
|
||||
include_directories(${vsUTCS_SOURCE_DIR}/src
|
||||
${vsUTCS_SOURCE_DIR}/src/cmd
|
||||
@@ -828,33 +828,33 @@
|
||||
@@ -685,14 +685,42 @@
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${vsUTCS_SOURCE_DIR})
|
||||
|
||||
|
||||
-find_package(PythonLibs REQUIRED)
|
||||
-IF(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES AND PYTHON_INCLUDE_PATH)
|
||||
- SET(TST_INCLUDES ${PYTHON_INCLUDE_PATH})
|
||||
+#find_package(PythonLibs REQUIRED)
|
||||
+#IF(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES AND PYTHON_INCLUDE_PATH)
|
||||
+# SET(TST_INCLUDES ${PYTHON_INCLUDE_PATH})
|
||||
+# SET(TST_LIBS ${PYTHON_LIBRARIES})
|
||||
+# SET(HAVE_PYTHON 1)
|
||||
+#ELSE(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES AND PYTHON_INCLUDE_PATH)
|
||||
+# message(FATAL_ERROR "Can't find python")
|
||||
+#ENDIF(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES AND PYTHON_INCLUDE_PATH)
|
||||
+
|
||||
+# Python 3 has a SASL compatibility issue which causes an error
|
||||
+# on some installations that prefer Python 3
|
||||
+# -- Python 2.7 is default for now
|
||||
+OPTION(USE_PYTHON_3 "Use Python 3 instead of Python 2.7 (default is 2.7)" OFF)
|
||||
+IF (USE_PYTHON_3)
|
||||
+ # We want at least Python 3.4, but we prefer newer versions
|
||||
+ SET(Python_ADDITIONAL_VERSIONS 3.8 3.7 3.6 3.5 3.4)
|
||||
+ELSE (USE_PYTHON_3)
|
||||
+ SET(Python_ADDITIONAL_VERSIONS 2.7)
|
||||
+ENDIF (USE_PYTHON_3)
|
||||
+# If we don't unset cache variables
|
||||
+# ccmake won't pick up changes to the USE_PYTHON_3 option
|
||||
+UNSET(PYTHON_INCLUDE_DIR CACHE)
|
||||
+UNSET(PYTHON_LIBRARY CACHE)
|
||||
+# The python version we want is set via Python_ADDITIONAL_VERSIONS
|
||||
+MESSAGE("++ Python release(s) searched for : ${Python_ADDITIONAL_VERSIONS}")
|
||||
+FIND_PACKAGE(PythonLibs REQUIRED)
|
||||
+MESSAGE("++ Python library : ${PYTHON_LIBRARY} (${PYTHONLIBS_VERSION_STRING})")
|
||||
+MESSAGE("++ Python include dir : ${PYTHON_INCLUDE_DIR}")
|
||||
+IF (PYTHONLIBS_FOUND OR PYTHON_LIBRARIES AND PYTHON_INCLUDE_DIRS)
|
||||
+ SET(TST_INCLUDES ${PYTHON_INCLUDE_DIRS})
|
||||
SET(TST_LIBS ${PYTHON_LIBRARIES})
|
||||
SET(HAVE_PYTHON 1)
|
||||
-ELSE(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES AND PYTHON_INCLUDE_PATH)
|
||||
- message(FATAL_ERROR "Can't find python")
|
||||
-ENDIF(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES AND PYTHON_INCLUDE_PATH)
|
||||
+ELSE (PYTHONLIBS_FOUND OR PYTHON_LIBRARIES AND PYTHON_INCLUDE_DIRS)
|
||||
+ MESSAGE(FATAL_ERROR "Can't find python")
|
||||
+ENDIF (PYTHONLIBS_FOUND OR PYTHON_LIBRARIES AND PYTHON_INCLUDE_DIRS)
|
||||
+
|
||||
|
||||
# Find Boost with boost_python library
|
||||
OPTION(USE_SYSTEM_BOOST "Use system boost" OFF)
|
||||
@@ -828,33 +856,33 @@
|
||||
|
||||
#Find FFMpeg
|
||||
|
||||
|
@ -68,7 +117,7 @@ diff -ruN ./CMakeLists.txt ../c/CMakeLists.txt
|
|||
|
||||
IF(NOT BEOS)
|
||||
FIND_LIBRARY(UTIL_LIB util)
|
||||
@@ -977,12 +977,12 @@
|
||||
@@ -977,12 +1005,12 @@
|
||||
HAVE_AVFORMAT_H
|
||||
HAVE_AVCODEC_H
|
||||
HAVE_AVIO_H
|
||||
|
@ -86,9 +135,9 @@ diff -ruN ./CMakeLists.txt ../c/CMakeLists.txt
|
|||
GTK2_ATK_INCLUDE_DIR
|
||||
GTK2_ATK_LIBRARY
|
||||
GTK2_CAIRO_INCLUDE_DIR
|
||||
diff -ruN ./objconv/basemaker/base_maker_texture.cpp ../c/objconv/basemaker/base_maker_texture.cpp
|
||||
diff -ruN ./objconv/basemaker/base_maker_texture.cpp ../b/objconv/basemaker/base_maker_texture.cpp
|
||||
--- ./objconv/basemaker/base_maker_texture.cpp 2010-03-10 03:56:23.000000000 +0100
|
||||
+++ ../c/objconv/basemaker/base_maker_texture.cpp 2020-09-03 16:25:55.871086646 +0200
|
||||
+++ ../b/objconv/basemaker/base_maker_texture.cpp 2020-09-02 15:08:07.760351554 +0200
|
||||
@@ -6,9 +6,12 @@
|
||||
#define XMD_H
|
||||
#define HAVE_BOOLEAN
|
||||
|
@ -102,9 +151,9 @@ diff -ruN ./objconv/basemaker/base_maker_texture.cpp ../c/objconv/basemaker/base
|
|||
}
|
||||
|
||||
#define strip_16 true
|
||||
diff -ruN ./objconv/mesher/to_OgreMesh.cpp ../c/objconv/mesher/to_OgreMesh.cpp
|
||||
diff -ruN ./objconv/mesher/to_OgreMesh.cpp ../b/objconv/mesher/to_OgreMesh.cpp
|
||||
--- ./objconv/mesher/to_OgreMesh.cpp 2011-06-02 01:47:36.000000000 +0200
|
||||
+++ ../c/objconv/mesher/to_OgreMesh.cpp 2020-09-03 16:25:55.872086633 +0200
|
||||
+++ ../b/objconv/mesher/to_OgreMesh.cpp 2020-09-02 15:08:07.762351529 +0200
|
||||
@@ -1078,10 +1078,15 @@
|
||||
Ogre::VertexDeclaration *newDcl =
|
||||
data->vertexDeclaration->getAutoOrganisedDeclaration(
|
||||
|
@ -187,9 +236,9 @@ diff -ruN ./objconv/mesher/to_OgreMesh.cpp ../c/objconv/mesher/to_OgreMesh.cpp
|
|||
|
||||
void DoneMeshes( void *outputcontext )
|
||||
{
|
||||
diff -ruN ./objconv/mesher/to_OgreMesh.h ../c/objconv/mesher/to_OgreMesh.h
|
||||
diff -ruN ./objconv/mesher/to_OgreMesh.h ../b/objconv/mesher/to_OgreMesh.h
|
||||
--- ./objconv/mesher/to_OgreMesh.h 2010-02-25 16:22:25.000000000 +0100
|
||||
+++ ../c/objconv/mesher/to_OgreMesh.h 2020-09-03 16:25:55.873086621 +0200
|
||||
+++ ../b/objconv/mesher/to_OgreMesh.h 2020-09-02 15:08:07.763351517 +0200
|
||||
@@ -20,7 +20,7 @@
|
||||
float RadialSize( void *outputcontext ); //returns the size of the resulting mesh (it's maximum distance from 0,0,0). Useful for LODding.
|
||||
|
||||
|
@ -199,9 +248,9 @@ diff -ruN ./objconv/mesher/to_OgreMesh.h ../c/objconv/mesher/to_OgreMesh.h
|
|||
void AutoEdgeList( void *outputcontext ); //a good idea - prepares the mesh for stencil shadows
|
||||
void AutoTangents( void *outputcontext ); //prepares the mesh for normal mapping (only needed if the material uses normal mapping)
|
||||
}
|
||||
diff -ruN ./setup/src/c/setup.cpp ../c/setup/src/c/setup.cpp
|
||||
diff -ruN ./setup/src/c/setup.cpp ../b/setup/src/c/setup.cpp
|
||||
--- ./setup/src/c/setup.cpp 2011-03-15 01:28:47.000000000 +0100
|
||||
+++ ../c/setup/src/c/setup.cpp 2020-09-03 16:25:55.873086621 +0200
|
||||
+++ ../b/setup/src/c/setup.cpp 2020-09-02 15:08:07.764351504 +0200
|
||||
@@ -110,10 +110,22 @@
|
||||
return 1;
|
||||
}
|
||||
|
@ -250,9 +299,9 @@ diff -ruN ./setup/src/c/setup.cpp ../c/setup/src/c/setup.cpp
|
|||
//Win32 data should be "."
|
||||
char tmppath[16384];
|
||||
for (vector< string >::iterator vsit = data_paths.begin(); vsit != data_paths.end(); vsit++) {
|
||||
diff -ruN ./setup/src/include/central.cpp ../c/setup/src/include/central.cpp
|
||||
diff -ruN ./setup/src/include/central.cpp ../b/setup/src/include/central.cpp
|
||||
--- ./setup/src/include/central.cpp 2004-10-25 04:27:13.000000000 +0200
|
||||
+++ ../c/setup/src/include/central.cpp 2020-09-03 17:45:35.786329482 +0200
|
||||
+++ ../b/setup/src/include/central.cpp 2020-09-03 02:22:34.948442084 +0200
|
||||
@@ -20,6 +20,8 @@
|
||||
struct group GROUPS;
|
||||
struct global_settings CONFIG;
|
||||
|
@ -271,9 +320,9 @@ diff -ruN ./setup/src/include/central.cpp ../c/setup/src/include/central.cpp
|
|||
}
|
||||
|
||||
struct catagory *GetCatStruct(char *name) {
|
||||
diff -ruN ./src/cmd/music.cpp ../c/src/cmd/music.cpp
|
||||
diff -ruN ./src/cmd/music.cpp ../b/src/cmd/music.cpp
|
||||
--- ./src/cmd/music.cpp 2012-03-19 09:20:14.000000000 +0100
|
||||
+++ ../c/src/cmd/music.cpp 2020-09-03 16:25:55.874086608 +0200
|
||||
+++ ../b/src/cmd/music.cpp 2020-09-02 15:08:07.765351492 +0200
|
||||
@@ -448,7 +448,9 @@
|
||||
if (foundcache) {
|
||||
*me->music_load_info = wherecache->second;
|
||||
|
@ -285,9 +334,9 @@ diff -ruN ./src/cmd/music.cpp ../c/src/cmd/music.cpp
|
|||
}
|
||||
if (me->freeWav && docacheme) {
|
||||
me->freeWav = false;
|
||||
diff -ruN ./src/cmd/unit.cpp ../c/src/cmd/unit.cpp
|
||||
diff -ruN ./src/cmd/unit.cpp ../b/src/cmd/unit.cpp
|
||||
--- ./src/cmd/unit.cpp 2012-03-19 09:20:14.000000000 +0100
|
||||
+++ ../c/src/cmd/unit.cpp 2020-09-03 16:25:55.875086596 +0200
|
||||
+++ ../b/src/cmd/unit.cpp 2020-09-02 15:56:51.644797969 +0200
|
||||
@@ -80,6 +80,7 @@
|
||||
template < class UnitType >GameUnit< UnitType >::GameUnit( int ) : sparkle_accum( 0 )
|
||||
, phalos( new HaloSystem() )
|
||||
|
@ -311,9 +360,9 @@ diff -ruN ./src/cmd/unit.cpp ../c/src/cmd/unit.cpp
|
|||
}
|
||||
|
||||
template < class UnitType >GameUnit< UnitType >::~GameUnit()
|
||||
diff -ruN ./src/cmd/unit_collide.h ../c/src/cmd/unit_collide.h
|
||||
diff -ruN ./src/cmd/unit_collide.h ../b/src/cmd/unit_collide.h
|
||||
--- ./src/cmd/unit_collide.h 2012-03-19 09:20:14.000000000 +0100
|
||||
+++ ../c/src/cmd/unit_collide.h 2020-09-03 17:34:09.178913256 +0200
|
||||
+++ ../b/src/cmd/unit_collide.h 2020-09-02 21:27:47.524565312 +0200
|
||||
@@ -94,9 +94,9 @@
|
||||
{
|
||||
if ( !hugeobjects.empty() )
|
||||
|
@ -326,9 +375,30 @@ diff -ruN ./src/cmd/unit_collide.h ../c/src/cmd/unit_collide.h
|
|||
hb.clear();
|
||||
acc_huge.clear();
|
||||
act_huge.clear();
|
||||
diff -ruN ./src/cmd/unit_generic.cpp ../c/src/cmd/unit_generic.cpp
|
||||
diff -ruN ./src/cmd/unit_generic.cpp ../b/src/cmd/unit_generic.cpp
|
||||
--- ./src/cmd/unit_generic.cpp 2012-03-19 09:20:14.000000000 +0100
|
||||
+++ ../c/src/cmd/unit_generic.cpp 2020-09-03 16:25:55.879086546 +0200
|
||||
+++ ../b/src/cmd/unit_generic.cpp 2020-09-02 21:47:36.695698627 +0200
|
||||
@@ -630,13 +630,13 @@
|
||||
jump.drive = -1;
|
||||
}
|
||||
|
||||
-float copysign( float x, float y )
|
||||
-{
|
||||
- if (y > 0)
|
||||
- return x;
|
||||
- else
|
||||
- return -x;
|
||||
-}
|
||||
+//float copysign( float x, float y )
|
||||
+//{
|
||||
+// if (y > 0)
|
||||
+// return x;
|
||||
+// else
|
||||
+// return -x;
|
||||
+//}
|
||||
|
||||
float rand01()
|
||||
{
|
||||
@@ -4903,16 +4903,26 @@
|
||||
|
||||
static const string LOAD_FAILED = "LOAD_FAILED";
|
||||
|
@ -423,9 +493,9 @@ diff -ruN ./src/cmd/unit_generic.cpp ../c/src/cmd/unit_generic.cpp
|
|||
if (tmpammo > mounts[jmod].ammo) {
|
||||
cancompletefully = true;
|
||||
if (touchme)
|
||||
diff -ruN ./src/cmd/unit_jump.h ../c/src/cmd/unit_jump.h
|
||||
diff -ruN ./src/cmd/unit_jump.h ../b/src/cmd/unit_jump.h
|
||||
--- ./src/cmd/unit_jump.h 2012-03-19 09:20:14.000000000 +0100
|
||||
+++ ../c/src/cmd/unit_jump.h 2020-09-03 16:25:55.880086533 +0200
|
||||
+++ ../b/src/cmd/unit_jump.h 2020-09-02 15:08:07.766351479 +0200
|
||||
@@ -108,7 +108,7 @@
|
||||
(tester = *i) != NULL; ++i)
|
||||
if (tester->isUnit() == UNITPTR && tester != this)
|
||||
|
@ -435,9 +505,21 @@ diff -ruN ./src/cmd/unit_jump.h ../c/src/cmd/unit_jump.h
|
|||
*( 4*( this->rSize()+tester->rSize() ) ) );
|
||||
DealPossibleJumpDamage( this );
|
||||
static int jumparrive = AUDCreateSound( vs_config->getVariable( "unitaudio", "jumparrive", "sfx43.wav" ), false );
|
||||
diff -ruN ./src/gfx/cockpit_xml.cpp ../c/src/gfx/cockpit_xml.cpp
|
||||
diff -ruN ./src/cmd/unit_physics.h ../b/src/cmd/unit_physics.h
|
||||
--- ./src/cmd/unit_physics.h 2012-03-19 09:20:14.000000000 +0100
|
||||
+++ ../b/src/cmd/unit_physics.h 2020-09-03 00:27:15.498947107 +0200
|
||||
@@ -41,7 +41,7 @@
|
||||
#include "networking/lowlevel/vsnet_clientstate.h"
|
||||
#include "networking/netclient.h"
|
||||
|
||||
-extern float copysign( float x, float y );
|
||||
+//extern float copysign( float x, float y );
|
||||
|
||||
extern unsigned int apply_float_to_unsigned_int( float tmp ); //short fix
|
||||
|
||||
diff -ruN ./src/gfx/cockpit_xml.cpp ../b/src/gfx/cockpit_xml.cpp
|
||||
--- ./src/gfx/cockpit_xml.cpp 2010-12-15 09:53:40.000000000 +0100
|
||||
+++ ../c/src/gfx/cockpit_xml.cpp 2020-09-03 16:30:00.313030701 +0200
|
||||
+++ ../b/src/gfx/cockpit_xml.cpp 2020-09-03 00:14:13.810719555 +0200
|
||||
@@ -315,7 +315,7 @@
|
||||
for (counter = 0; counter < 4; ++counter)
|
||||
if (!replaced[counter]) {
|
||||
|
@ -447,9 +529,9 @@ diff -ruN ./src/gfx/cockpit_xml.cpp ../c/src/gfx/cockpit_xml.cpp
|
|||
}
|
||||
break;
|
||||
case UnitImages< void >::SHIELD4:
|
||||
diff -ruN ./src/gfx/quadsquare.cpp ../c/src/gfx/quadsquare.cpp
|
||||
diff -ruN ./src/gfx/quadsquare.cpp ../b/src/gfx/quadsquare.cpp
|
||||
--- ./src/gfx/quadsquare.cpp 2010-03-10 06:27:01.000000000 +0100
|
||||
+++ ../c/src/gfx/quadsquare.cpp 2020-09-03 16:25:55.881086521 +0200
|
||||
+++ ../b/src/gfx/quadsquare.cpp 2020-09-02 15:08:07.767351467 +0200
|
||||
@@ -13,9 +13,9 @@
|
||||
#include <float.h>
|
||||
#include <math.h>
|
||||
|
@ -461,9 +543,9 @@ diff -ruN ./src/gfx/quadsquare.cpp ../c/src/gfx/quadsquare.cpp
|
|||
using std::vector;
|
||||
|
||||
unsigned int*quadsquare::VertexAllocated;
|
||||
diff -ruN ./src/gui/text_area.cpp ../c/src/gui/text_area.cpp
|
||||
diff -ruN ./src/gui/text_area.cpp ../b/src/gui/text_area.cpp
|
||||
--- ./src/gui/text_area.cpp 2010-02-25 15:26:53.000000000 +0100
|
||||
+++ ../c/src/gui/text_area.cpp 2020-09-03 17:46:51.883378138 +0200
|
||||
+++ ../b/src/gui/text_area.cpp 2020-09-03 00:05:06.687559535 +0200
|
||||
@@ -32,6 +32,8 @@
|
||||
* };
|
||||
*/
|
||||
|
@ -482,9 +564,9 @@ diff -ruN ./src/gui/text_area.cpp ../c/src/gui/text_area.cpp
|
|||
if (type == 1) return search->name;
|
||||
|
||||
else return search->description;
|
||||
diff -ruN ./src/networking/lowlevel/packetmem.cpp ../c/src/networking/lowlevel/packetmem.cpp
|
||||
diff -ruN ./src/networking/lowlevel/packetmem.cpp ../b/src/networking/lowlevel/packetmem.cpp
|
||||
--- ./src/networking/lowlevel/packetmem.cpp 2008-03-31 10:20:19.000000000 +0200
|
||||
+++ ../c/src/networking/lowlevel/packetmem.cpp 2020-09-03 16:25:55.881086521 +0200
|
||||
+++ ../b/src/networking/lowlevel/packetmem.cpp 2020-09-02 15:08:07.768351454 +0200
|
||||
@@ -102,7 +102,7 @@
|
||||
}
|
||||
else
|
||||
|
@ -494,9 +576,21 @@ diff -ruN ./src/networking/lowlevel/packetmem.cpp ../c/src/networking/lowlevel/p
|
|||
_len = 0;
|
||||
}
|
||||
}
|
||||
diff -ruN ./src/pk3.cpp ../c/src/pk3.cpp
|
||||
diff -ruN ./src/physics.h ../b/src/physics.h
|
||||
--- ./src/physics.h 2011-02-12 04:19:03.000000000 +0100
|
||||
+++ ../b/src/physics.h 2020-09-02 21:32:31.049020768 +0200
|
||||
@@ -27,7 +27,7 @@
|
||||
static const float oocc = (float) 0.0000000000000000111265005605; //1/c^2
|
||||
static const float c = (float) 299792458.0;
|
||||
static const float co10 = (float) 29979245.8;
|
||||
-float copysign( float x, float y );
|
||||
+//float copysign( float x, float y );
|
||||
|
||||
struct Force
|
||||
{
|
||||
diff -ruN ./src/pk3.cpp ../b/src/pk3.cpp
|
||||
--- ./src/pk3.cpp 2012-03-19 09:20:14.000000000 +0100
|
||||
+++ ../c/src/pk3.cpp 2020-09-03 16:31:12.819124250 +0200
|
||||
+++ ../b/src/pk3.cpp 2020-09-02 23:06:42.933362491 +0200
|
||||
@@ -356,7 +356,7 @@
|
||||
}
|
||||
//if the file isn't in the archive
|
||||
|
@ -506,9 +600,59 @@ diff -ruN ./src/pk3.cpp ../c/src/pk3.cpp
|
|||
int flength = GetFileLen( index );
|
||||
|
||||
buffer = new char[flength];
|
||||
diff -ruN ./src/vsfilesystem.cpp ../c/src/vsfilesystem.cpp
|
||||
diff -ruN ./src/python/python_compile.h ../b/src/python/python_compile.h
|
||||
--- ./src/python/python_compile.h 2010-02-25 16:44:43.000000000 +0100
|
||||
+++ ../b/src/python/python_compile.h 2020-09-02 21:07:32.272758050 +0200
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "hashtable.h"
|
||||
#include <string>
|
||||
#include <compile.h>
|
||||
+#include <boost/version.hpp>
|
||||
|
||||
extern Hashtable< std::string, PyCodeObject, 1023 >compiled_python;
|
||||
|
||||
@@ -40,8 +41,11 @@
|
||||
switch (type)
|
||||
{
|
||||
case MYSTRING:
|
||||
+#if BOOST_VERSION <= 104500
|
||||
return PyString_FromString( objects.c_str() );
|
||||
-
|
||||
+#else
|
||||
+ return PyUnicode_FromString( objects.c_str() );
|
||||
+#endif
|
||||
case MYLONG:
|
||||
return PyLong_FromLong( objecti );
|
||||
|
||||
diff -ruN ./src/ship_commands.cpp ../b/src/ship_commands.cpp
|
||||
--- ./src/ship_commands.cpp 2012-03-19 09:20:14.000000000 +0100
|
||||
+++ ../b/src/ship_commands.cpp 2020-09-03 00:11:42.010617317 +0200
|
||||
@@ -5,14 +5,14 @@
|
||||
#include "universe_util.h"
|
||||
#include "gldrv/winsys.h"
|
||||
|
||||
-static inline float fmin( float a, float b )
|
||||
-{
|
||||
- return (a < b) ? a : b;
|
||||
-}
|
||||
-static inline float fmax( float a, float b )
|
||||
-{
|
||||
- return (a > b) ? a : b;
|
||||
-}
|
||||
+//static inline float fmin( float a, float b )
|
||||
+//{
|
||||
+// return (a < b) ? a : b;
|
||||
+//}
|
||||
+//static inline float fmax( float a, float b )
|
||||
+//{
|
||||
+// return (a > b) ? a : b;
|
||||
+//}
|
||||
|
||||
class ShipCommands
|
||||
{
|
||||
diff -ruN ./src/vsfilesystem.cpp ../b/src/vsfilesystem.cpp
|
||||
--- ./src/vsfilesystem.cpp 2012-03-19 09:20:14.000000000 +0100
|
||||
+++ ../c/src/vsfilesystem.cpp 2020-09-03 16:25:55.882086508 +0200
|
||||
+++ ../b/src/vsfilesystem.cpp 2020-09-02 16:02:24.060642199 +0200
|
||||
@@ -460,13 +460,15 @@
|
||||
|
||||
int vs_fprintf( FILE *fp, const char *format, ... )
|
||||
|
|
|
@ -84,6 +84,8 @@ tar xvf $CWD/$PRGSRCNAME$PRGSRCSUF
|
|||
|
||||
cd $PRGSRCNAME
|
||||
|
||||
cp "$CWD/cmake"/*.cmake .
|
||||
|
||||
declare patchdir="$CWD/patches"
|
||||
|
||||
patch -p0 < "$patchdir/patch-${VERSION}_$BUILD"
|
||||
|
@ -113,6 +115,8 @@ cmake \
|
|||
-DCMAKE_INSTALL_DOCDIR=/usr/doc/$PRGNAM-$VERSION \
|
||||
-DCMAKE_SYSTEM_PROCESSOR=$ARCH \
|
||||
-DDISABLE_SERVER=${DISABLE_SERVER:-ON} \
|
||||
-DUSE_SYSTEM_BOOST=${USE_SYSTEM_BOOST:-ON} \
|
||||
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD:-11} \
|
||||
..
|
||||
|
||||
make
|
||||
|
|
Loading…
Reference in New Issue