Browse Source

Fix finding SimpleIni

The version in Ubuntu 22.04 comes without `ConvertUTF.{h,c}`.

We actually do not need `ConvertUTF.{h,c}` and starting from
v4.19 it is possible to tell SimpleIni to not include it
by setting `SI_NO_CONVERSION`.

Sets `SI_NO_CONVERSION` and raises the minimum required SimpleIni
version to 4.19.
pull/4932/head
Gleb Mazovetskiy 4 years ago committed by Anders Jenbo
parent
commit
92fa2500a6
  1. 6
      CMake/Dependencies.cmake
  2. 13
      CMake/finders/Findsimpleini.cmake
  3. 1
      Source/options.cpp

6
CMake/Dependencies.cmake

@ -168,7 +168,7 @@ if(WIN32 AND NOT UWP_LIB)
endif()
if(NOT DEFINED DEVILUTIONX_SYSTEM_SIMPLEINI)
find_package(simpleini QUIET)
find_package(simpleini 4.19 QUIET)
if(simpleini_FOUND)
message("-- Found simpleini")
else()
@ -178,9 +178,7 @@ if(NOT DEFINED DEVILUTIONX_SYSTEM_SIMPLEINI)
endif()
dependency_options("simpleini" DEVILUTIONX_SYSTEM_SIMPLEINI ON DEVILUTIONX_STATIC_SIMPLEINI)
if(DEVILUTIONX_SYSTEM_SIMPLEINI)
if(NOT simpleini_FOUND)
find_package(simpleini REQUIRED)
endif()
find_package(simpleini 4.19 REQUIRED)
else()
add_subdirectory(3rdParty/simpleini)
endif()

13
CMake/finders/Findsimpleini.cmake

@ -7,9 +7,18 @@ find_path(simpleini_INCLUDE_DIR SimpleIni.h
find_library(simpleini_LIBRARY simpleini
HINTS ${PC_simpleini_LIBDIR} ${PC_simpleini_LIBRARY_DIRS})
if (NOT simpleini_INCLUDE_DIR STREQUAL "simpleini_INCLUDE_DIR-NOTFOUND")
file(READ "${simpleini_INCLUDE_DIR}/SimpleIni.h" _version_header_content)
if(_version_header_content MATCHES "<th>Version *<td>([0-9.]+)")
set(simpleini_VERSION "${CMAKE_MATCH_1}")
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(simpleini DEFAULT_MSG
simpleini_INCLUDE_DIR simpleini_LIBRARY)
find_package_handle_standard_args(simpleini
REQUIRED_VARS simpleini_INCLUDE_DIR simpleini_LIBRARY
VERSION_VAR simpleini_VERSION)
if(simpleini_FOUND)
add_library(simpleini INTERFACE)

1
Source/options.cpp

@ -8,6 +8,7 @@
#include <fstream>
#define SI_SUPPORT_IOSTREAMS
#define SI_NO_CONVERSION
#include <SimpleIni.h>
#include "control.h"

Loading…
Cancel
Save