sfml-tmxloaderのcmakeを勝手に修正

lubuntuでsfml-tmxloaderを使おうと思ったら
cmakeのチェックでsfmlのバージョンが古いって言われるので、
調べたところConfig.hppに#define SFML_VERSION_MINORの記述が無いせいで
sfmlバージョンの取得に失敗しているもよう(´・ω・`)

cmake/FindSFML.cmakeファイルの書き換え

cmake/FindSFML.cmakeファイルの92行目当たりにバージョンの取得処理があるので
次のように書き換えてしまいました。

[code lang=text]
STRING(REGEX MATCH ".*#define SFML_VERSION_MAJOR ([0-9]+).*" SFML_CONFIG_HPP_CONTENTS "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX REPLACE ".*#define SFML_VERSION_MAJOR ([0-9]+).*" "\1" SFML_VERSION_MAJOR "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX MATCH ".*#define SFML_VERSION_MINOR ([0-9]+).*" SFML_CONFIG_HPP_CONTENTS "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX REPLACE ".*#define SFML_VERSION_MINOR ([0-9]+).*" "\1" SFML_VERSION_MINOR "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX MATCH ".*#define SFML_VERSION_PATCH ([0-9]+).*" SFML_CONFIG_HPP_CONTENTS "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX REPLACE ".*#define SFML_VERSION_PATCH ([0-9]+).*" "\1" SFML_VERSION_PATCH "${SFML_CONFIG_HPP_CONTENTS}")
if (NOT SFML_VERSION_PATCH)
set(SFML_VERSION_PATCH 0)
endif()
[/code]

いっぺんに正規表現で取得していたのを個別で取得するようにして、
SFML_VERSION_PATCHはなかったら「0」を入れるようにしただけです。
とりあえず、動いてるので良しとしました。

タイトルとURLをコピーしました