Skip to content
Snippets Groups Projects
Commit 4b245d6c authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Add utils subdir (builds PastisUtils lib)

git revision info is now computed in utils
parent b070a284
No related branches found
No related tags found
No related merge requests found
...@@ -29,21 +29,10 @@ project (Pastis) ...@@ -29,21 +29,10 @@ project (Pastis)
list(APPEND CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O3) list(APPEND CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O3)
add_subdirectory(${CMAKE_SOURCE_DIR}/packages/kokkos) add_subdirectory(${CMAKE_SOURCE_DIR}/packages/kokkos)
include_directories(${Kokkos_INCLUDE_DIRS_RET}) add_subdirectory(utils)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake-modules")
include(GetGitRevisionDescription)
get_git_head_revision(GITREV GITHASH)
git_local_changes(GITHASLOCALCHANGES)
add_custom_target(git_revision ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/git_revision.hpp) include_directories(${Kokkos_INCLUDE_DIRS_RET})
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/git_revision.hpp PROPERTIES GENERATED TRUE HEADER_FILE_ONLY TRUE) include_directories(utils)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/git_revision.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/git_revision.hpp" @ONLY)
list(APPEND SOURCES git_revision.hpp)
include_directories(${CMAKE_BINARY_DIR})
add_executable(pastis main.cpp) add_executable(pastis main.cpp)
target_link_libraries(pastis kokkos) target_link_libraries(pastis kokkos PastisUtils)
#define GITREV "@GITREV@"
#define GITHASH "@GITHASH@"
#define GITHASLOCALCHANGES "@GITHASLOCALCHANGES@"
#include <iostream> #include <iostream>
#include <Kokkos_Core.hpp> #include <Kokkos_Core.hpp>
#include <git_revision.hpp> #include <RevisionInfo.hpp>
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
std::cout << "It's pastis time!\n"; std::cout << "It's pastis time!\n";
std::cout << "--------------------- git info --------------------------\n"; std::cout << "--------------------- git info --------------------------\n";
std::cout << "* branch: " << GITREV << '\n'; std::cout << "* version: " << RevisionInfo::version() << '\n';
std::cout << "* hash: " << GITHASH << '(' << GITHASLOCALCHANGES << ")\n"; std::cout << "* head: " << RevisionInfo::head() << '\n';
std::cout << "* hash: " << RevisionInfo::hash() << " (" << RevisionInfo::isClean() << ")\n";
std::cout << "---------------------------------------------------------\n"; std::cout << "---------------------------------------------------------\n";
Kokkos::initialize(argc, argv); Kokkos::initialize(argc, argv);
......
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/cmake-modules")
include(GetGitRevisionDescription)
git_describe(PASTISVERSION "--abbrev=0")
get_git_head_revision(PASTISHEAD PASTISHASH)
git_local_changes(PASTISHASLOCALCHANGES)
add_custom_target(git_revision ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp)
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp PROPERTIES GENERATED TRUE HEADER_FILE_ONLY TRUE)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pastis_git_revision.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp" @ONLY)
list(APPEND SOURCES pastis_git_revision.hpp)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_library(PastisUtils RevisionInfo.cpp)
#include <RevisionInfo.hpp>
#include <pastis_git_revision.hpp>
std::string RevisionInfo::version()
{
return PASTISVERSION;
}
std::string RevisionInfo::head()
{
return PASTISHEAD;
}
std::string RevisionInfo::hash()
{
return PASTISHASH;
}
std::string RevisionInfo::isClean()
{
return PASTISHASLOCALCHANGES;
}
#ifndef REVISION_INFO_HPP
#define REVISION_INFO_HPP
#include <string>
struct RevisionInfo
{
static std::string version();
static std::string head();
static std::string hash();
static std::string isClean();
};
#endif // REVISION_INFO_HPP
#ifndef GIT_REVISION_HPP
#define GIT_REVISION_HPP
#define PASTISVERSION "@PASTISVERSION@"
#define PASTISHEAD "@PASTISHEAD@"
#define PASTISHASH "@PASTISHASH@"
#define PASTISHASLOCALCHANGES "@PASTISHASLOCALCHANGES@"
#endif // GIT_REVISION_HPP
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment