Browse Source

Initial commit.

master
Ian Burgmyer 4 years ago
commit
0ef695d600
  1. 4
      .gitignore
  2. 59
      CMakeLists.txt
  3. 5
      libplip/Hello.cpp
  4. 8
      libplip/Hello.h
  5. 8
      plip-sdl/main.cpp
  6. 34
      version.cmake
  7. 9
      version.h.in

4
.gitignore vendored

@ -0,0 +1,4 @@
.idea
cmake-build-*/
version.h

59
CMakeLists.txt

@ -0,0 +1,59 @@
cmake_minimum_required(VERSION 3.16)
set(product_name "Plip")
set(gui_name "plip-sdl")
set(lib_name "libplip")
project(${gui_name})
set(CMAKE_CXX_STANDARD 14)
find_package(SDL2 REQUIRED)
###########
# libplip #
###########
include(TestBigEndian)
TEST_BIG_ENDIAN(BIG_ENDIAN)
add_custom_target(
GENERATE_LIB_VERSION_HEADER
COMMAND ${CMAKE_COMMAND}
-Dcmake_root="${CMAKE_CURRENT_SOURCE_DIR}"
-Dsrc_root="${CMAKE_CURRENT_SOURCE_DIR}/libplip"
-DBIN_NAME="${lib_name}"
-P "${CMAKE_CURRENT_SOURCE_DIR}/version.cmake"
)
add_library(${lib_name}
libplip/Hello.cpp
)
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
)
target_include_directories(${gui_name}
PRIVATE ${CMAKE_SOURCE_DIR}/libplip
PUBLIC ${SDL2_INCLUDE_DIRS}
)
target_link_libraries(${gui_name}
libplip
${SDL2_INCLUDE_DIRS}
)
add_dependencies(${gui_name} GENERATE_CLI_VERSION_HEADER)

5
libplip/Hello.cpp

@ -0,0 +1,5 @@
#include "Hello.h"
int Hello::Calculate() {
return 42;
}

8
libplip/Hello.h

@ -0,0 +1,8 @@
#pragma once
class Hello {
public:
static int Calculate();
};

8
plip-sdl/main.cpp

@ -0,0 +1,8 @@
#include <iostream>
#include "Hello.h"
int main() {
std::cout << "Hello world! The answer is " << Hello::Calculate() << "." << std::endl;
return 0;
}

34
version.cmake

@ -0,0 +1,34 @@
cmake_minimum_required(VERSION 3.15)
find_package(Git)
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY "${cmake_root}"
OUTPUT_VARIABLE GIT_BRANCH
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY "${cmake_root}"
OUTPUT_VARIABLE GIT_REVISION
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags
WORKING_DIRECTORY "${cmake_root}"
OUTPUT_VARIABLE GIT_TAG
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message(STATUS "${APP_TITLE}: ${GIT_BRANCH}@${GIT_REVISION}; tag: ${GIT_TAG}")
else()
message(STATUS "Git package not found. Unable to fetch version information.")
endif()
configure_file(${cmake_root}/version.h.in ${src_root}/version.h)

9
version.h.in

@ -0,0 +1,9 @@
#pragma once
#cmakedefine PRODUCT_NAME "${PRODUCT_NAME}"
#cmakedefine BIN_NAME "${BIN_NAME}"
#cmakedefine GIT_FOUND
#cmakedefine GIT_BRANCH "${GIT_BRANCH}"
#cmakedefine GIT_REVISION "${GIT_REVISION}"
#cmakedefine GIT_TAG "${GIT_TAG}"
Loading…
Cancel
Save