Browse Source

Moved versioning solely to the library.

* Removed version header generation for the GUI application.
    * Added a static library function to retrieve the version number.
    * Fixed bug that caused the version flag to fail unless the core/filename
      were specified.
    * Renamed version.h to PlipVersion.h.
master
Ian Burgmyer 4 years ago
parent
commit
e43f14f4a6
  1. 14
      CMakeLists.txt
  2. 15
      libplip/Plip.cpp
  3. 9
      libplip/Plip.h
  4. 9
      libplip/PlipVersion.h
  5. 25
      plip-sdl/main.cpp
  6. 2
      version.cmake

14
CMakeLists.txt

@ -19,7 +19,9 @@ add_custom_target(
COMMAND ${CMAKE_COMMAND}
-Dcmake_root="${CMAKE_CURRENT_SOURCE_DIR}"
-Dsrc_root="${CMAKE_CURRENT_SOURCE_DIR}/libplip"
-DPRODUCT_NAME="${product_name}"
-DBIN_NAME="${lib_name}"
-DVERSION_FILE="PlipVersion.h"
-P "${CMAKE_CURRENT_SOURCE_DIR}/version.cmake"
)
@ -32,16 +34,6 @@ add_dependencies(${lib_name} GENERATE_LIB_VERSION_HEADER)
########
# plip #
########
add_custom_target(
GENERATE_CLI_VERSION_HEADER
COMMAND ${CMAKE_COMMAND}
-Dcmake_root="${CMAKE_CURRENT_SOURCE_DIR}"
-Dsrc_root="${CMAKE_CURRENT_SOURCE_DIR}/plip-sdl"
-DPRODUCT_NAME="${product_name}"
-DBIN_NAME="${gui_name}"
-P "${CMAKE_CURRENT_SOURCE_DIR}/version.cmake"
)
add_executable(${gui_name}
plip-sdl/main.cpp
plip-sdl/SdlWindow.cpp
@ -56,5 +48,3 @@ target_link_libraries(${gui_name}
plip
${SDL2_LIBRARIES}
)
add_dependencies(${gui_name} GENERATE_CLI_VERSION_HEADER)

15
libplip/Plip.cpp

@ -4,3 +4,18 @@
*/
#include "Plip.h"
#include "PlipVersion.h"
namespace Plip {
std::string Plip::GetVersion() {
#ifndef GIT_FOUND
return PRODUCT_NAME;
#else
#ifndef GIT_TAG
return PRODUCT_NAME " (" GIT_BRANCH "@" GIT_REVISION ")";
#else
return PRODUCT_NAME " " GIT_TAG;
#endif // GIT_TAG
#endif // GIT_FOUND
}
}

9
libplip/Plip.h

@ -5,6 +5,11 @@
#pragma once
class Plip {
#include <string>
};
namespace Plip {
class Plip {
public:
static std::string GetVersion();
};
}

9
libplip/PlipVersion.h

@ -0,0 +1,9 @@
#pragma once
#define PRODUCT_NAME "Plip"
#define BIN_NAME "plip"
#define GIT_FOUND
#define GIT_BRANCH "master"
#define GIT_REVISION "a6b8d9f"
/* #undef GIT_TAG */

25
plip-sdl/main.cpp

@ -6,9 +6,9 @@
#include <iostream>
#include "cxxopts.hpp"
#include "Plip.h"
#include "SdlWindow.h"
#include "version.h"
cxxopts::ParseResult parseCmdLine(int argc, char **argv) {
try {
@ -54,17 +54,13 @@ cxxopts::ParseResult parseCmdLine(int argc, char **argv) {
}
int main(int argc, char **argv) {
#ifndef GIT_FOUND
const char *windowTitle = PRODUCT_NAME;
#else
#ifndef GIT_TAG
const char *windowTitle = PRODUCT_NAME " (" GIT_BRANCH "@" GIT_REVISION ")";
#else
const char *windowTitle = PRODUCT_NAME " " GIT_TAG;
#endif // GIT_TAG
#endif // GIT_FOUND
auto opts = parseCmdLine(argc, argv);
auto version = Plip::Plip::GetVersion();
if(opts.count("version")) {
std::cout << version << std::endl;
return 0;
}
if(!opts.count("core") || !opts.count("filename")) {
std::cerr << "The name of the core and the filename must be specified!\n\n"
@ -72,12 +68,7 @@ int main(int argc, char **argv) {
return 1;
}
if(opts.count("version")) {
std::cout << windowTitle << std::endl;
return 0;
}
auto wnd = new PlipSdl::SdlWindow(opts["scale"].as<int>(), windowTitle);
auto wnd = new PlipSdl::SdlWindow(opts["scale"].as<int>(), version);
return 0;
}

2
version.cmake

@ -31,4 +31,4 @@ else()
message(STATUS "Git package not found. Unable to fetch version information.")
endif()
configure_file(${cmake_root}/version.h.in ${src_root}/version.h)
configure_file(${cmake_root}/version.h.in ${src_root}/${VERSION_FILE})

Loading…
Cancel
Save