···11-cmake_minimum_required(VERSION 2.6)
11+cmake_minimum_required(VERSION 3.0)
2233project(SDL_gpu)
4455-file(READ version.txt SDL_GPU_VERSION)
55+file(READ ${CMAKE_CURRENT_SOURCE_DIR}/version.txt VERSION_FILE_CONTENTS)
6677-if((NOT DEFINED VERSION_MAJOR OR NOT DEFINED VERSION_MINOR OR NOT DEFINED VERSION_BUGFIX) AND SDL_GPU_VERSION STREQUAL "")
77+if((NOT DEFINED VERSION_MAJOR OR NOT DEFINED VERSION_MINOR OR NOT DEFINED VERSION_BUGFIX) AND VERSION_FILE_CONTENTS STREQUAL "")
88 message(ERROR "Missing version.txt, VERSION_MAJOR, VERSION_MINOR, and VERSION_BUGFIX.")
99 message(FATAL_ERROR "Failed to read version.txt and cannot proceed without a version number for SDL_gpu.")
1010endif()
11111212if(NOT DEFINED VERSION_MAJOR)
1313- string(REGEX MATCH "^[0-9]*" VERSION_MAJOR ${SDL_GPU_VERSION})
1313+ string(REGEX MATCH "^[0-9]*" VERSION_MAJOR ${VERSION_FILE_CONTENTS})
1414endif()
1515if(NOT DEFINED VERSION_MINOR)
1616- string(REGEX MATCH "[.][0-9]*[.]" VERSION_MINOR ${SDL_GPU_VERSION})
1616+ string(REGEX MATCH "[.][0-9]*[.]" VERSION_MINOR ${VERSION_FILE_CONTENTS})
1717 # Chop off the dots
1818 string(LENGTH ${VERSION_MINOR} VERSION_MINOR_LENGTH)
1919 string(SUBSTRING ${VERSION_MINOR} 1 ${VERSION_MINOR_LENGTH}-2 VERSION_MINOR)
2020endif()
2121if(NOT DEFINED VERSION_BUGFIX)
2222- string(REGEX MATCH "[0-9]*$" VERSION_MAJOR ${SDL_GPU_VERSION})
2222+ string(REGEX MATCH "[0-9]*$" VERSION_MAJOR ${VERSION_FILE_CONTENTS})
2323endif()
24242525set(SDL_gpu_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUGFIX})
2626+2727+message("Writing version header for v${SDL_gpu_VERSION}")
2828+string(CONCAT VERSION_HEADER_CONTENTS "#ifndef _SDL_GPU_VERSION_H__"
2929+ "#define _SDL_GPU_VERSION_H__"
3030+ "#define SDL_GPU_VERSION_MAJOR ${VERSION_MAJOR}"
3131+ "#define SDL_GPU_VERSION_MINOR ${VERSION_MINOR}"
3232+ "#define SDL_GPU_VERSION_PATCH ${VERSION_BUGFIX}"
3333+ "#endif")
3434+file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/include/SDL_gpu_version.h ${VERSION_HEADER_CONTENTS})
26352736set(SDL_gpu_INSTALL_BY_DEFAULT ON)
2837set(SDL_gpu_DEFAULT_BUILD_SHARED ON)
+2-4
include/SDL_gpu.h
···1212extern "C" {
1313#endif
14141515-// Compile-time versions
1616-#define SDL_GPU_VERSION_MAJOR 0
1717-#define SDL_GPU_VERSION_MINOR 11
1818-#define SDL_GPU_VERSION_PATCH 0
1515+// Compile-time version info
1616+#include "SDL_gpu_version.h"
19172018/* Auto-detect if we're using the SDL2 API by the headers available. */
2119#if SDL_VERSION_ATLEAST(2,0,0)