From d449d8efe5bfbf6f5a569480c774031b818093ff Mon Sep 17 00:00:00 2001 From: Kevin Matz Date: Mon, 9 Aug 2021 15:01:41 -0400 Subject: [PATCH] let cmake handle versioning --- CMakeLists.txt | 5 +++-- build/has_rtti.h | 15 ------------- config.h.in | 57 +++++++++++++++++++++++++++++++++++++++++++++++ sacn/extended.cpp | 2 +- sacn/receiver.cpp | 2 +- sacn/universe.cpp | 2 +- 6 files changed, 63 insertions(+), 20 deletions(-) delete mode 100644 build/has_rtti.h create mode 100644 config.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 86b9878..e06a62c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,10 @@ cmake_minimum_required(VERSION 3.14) # set the project name and version -project(ESTA VERSION 1.0.0) +project(ESTA VERSION 0.1.1) set(DEFAULT_BUILD_TYPE "Release") +configure_file(config.h.in config.h) +add_compile_definitions(BUILT_WITH_CMAKE) # specify the C++ standard set(CMAKE_CXX_STANDARD 17) @@ -36,7 +38,6 @@ set(SOURCE_FILES acn/sdt-udp.h acn/sdt.cpp acn/sdt.h - build/has_rtti.h dmx/dmx.h dmx/universe.cpp dmx/universe.h diff --git a/build/has_rtti.h b/build/has_rtti.h deleted file mode 100644 index 7caa926..0000000 --- a/build/has_rtti.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#if defined(__clang__) - #if __has_feature(cxx_rtti) - #define RTTI_ENABLED - #endif -#elif defined(__GNUG__) - #if defined(__GXX_RTTI) - #define RTTI_ENABLED - #endif -#elif defined(_MSC_VER) - #if defined(_CPPRTTI) - #define RTTI_ENABLED - #endif -#endif diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..975d49e --- /dev/null +++ b/config.h.in @@ -0,0 +1,57 @@ +/* + config.h.in + + Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ +#pragma once + +#include + +#if defined(BUILT_WITH_CMAKE) +static constexpr char LIB_NAME [] = "lib@PROJECT_NAME@"; +static const uint32_t LIB_VERSION = (@PROJECT_VERSION_MAJOR@ << 24) | + (@PROJECT_VERSION_MINOR@ << 16) | + @PROJECT_VERSION_PATCH@; +static constexpr char LIB_VERSION_LABEL [] = "@PROJECT_VERSION@"; +#else +static constexpr char LIB_NAME [] = "libESTA"; +static const uint32_t LIB_VERSION = 0x00010001; +static constexpr char LIB_VERSION_LABEL [] = "0.1.1"; +#endif + +// THIS IS MINE! Use your own! +static const uint16_t MY_ESTA_MANUFACTURER_ID = 0x0235; +static constexpr char MY_ESTA_MANUFACTURER_LABEL [] = "Company 235, LLC"; + + +#if defined(__clang__) + #if __has_feature(cxx_rtti) + #define RTTI_ENABLED + #endif +#elif defined(__GNUG__) + #if defined(__GXX_RTTI) + #define RTTI_ENABLED + #endif +#elif defined(_MSC_VER) + #if defined(_CPPRTTI) + #define RTTI_ENABLED + #endif +#endif diff --git a/sacn/extended.cpp b/sacn/extended.cpp index 69b12ee..a8f7d6a 100644 --- a/sacn/extended.cpp +++ b/sacn/extended.cpp @@ -23,7 +23,7 @@ */ #include "extended.h" -#include "../build/has_rtti.h" +#include "config.h" namespace SACN { namespace EXTENDED { diff --git a/sacn/receiver.cpp b/sacn/receiver.cpp index 85205ad..2ec0910 100644 --- a/sacn/receiver.cpp +++ b/sacn/receiver.cpp @@ -23,7 +23,7 @@ */ #include "receiver.h" -#include "build/has_rtti.h" +#include "config.h" namespace SACN { diff --git a/sacn/universe.cpp b/sacn/universe.cpp index d1d78f1..3c3ca9e 100644 --- a/sacn/universe.cpp +++ b/sacn/universe.cpp @@ -23,7 +23,7 @@ */ #include "universe.h" -#include "../build/has_rtti.h" +#include "config.h" namespace SACN {