diff --git a/CMakeLists.txt b/CMakeLists.txt index ade9108..30093ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,10 @@ cmake_minimum_required(VERSION 3.5.1) +set (OPENAUTO_VERSION_MAJOR 2) +set (OPENAUTO_VERSION_MINOR 1) + +project(openauto +LANGUAGES CXX) find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") @@ -11,6 +16,7 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) +set(base_directory ${CMAKE_CURRENT_SOURCE_DIR}) set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib) @@ -42,6 +48,7 @@ find_package(rtaudio REQUIRED) find_package(aasdk REQUIRED) find_package(Threads) +include(${base_directory}/cmake_modules/gitversion.cmake) if(RPI_BUILD) find_package(libomx) endif() @@ -60,12 +67,12 @@ if(GST_BUILD) add_definitions(-DRPI) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/functions.cmake) findRpiRevision( RPI_REVISION ) - math(EXPR RPI_MODEL "(0x${RPI_REVISION}>>4)&0xFF") + math(EXPR RPI_MODEL "(0x${RPI_REVISION}>>4)&0xFF") message( "-- Raspberry Pi Model: ${RPI_MODEL}" ) if(RPI_MODEL EQUAL 17) message("Raspberry Pi 4 Found") add_definitions(-DPI4) - endif(RPI_REVISION EQUAL 17) + endif(RPI_MODEL EQUAL 17) endif(RPI_BUILD) message(STATUS "${GST_LIBRARIES}") endif(GST_BUILD) @@ -77,3 +84,40 @@ include_directories(${BTSERVICE_PROTO_INCLUDE_DIRS}) add_subdirectory(openauto) add_subdirectory(autoapp) add_dependencies(autoapp btservice_proto) + +set (OPENAUTO_VERSION_PATCH ${_commit_timestamp}) +set (OPENAUTO_VERSION_STRING ${OPENAUTO_VERSION_MAJOR}.${OPENAUTO_VERSION_MINOR}.${OPENAUTO_VERSION_PATCH}) + +install(DIRECTORY lib DESTINATION lib COMPONENT libraries) +install(DIRECTORY include DESTINATION include COMPONENT headers) +install(DIRECTORY bin DESTINATION bin COMPONENT applications) + +SET(CPACK_GENERATOR "DEB") +SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "OpenDsh") #required +SET(CPACK_PACKAGE_VENDOR "OpenDsh") +SET(CPACK_PACKAGE_VERSION ${OPENAUTO_VERSION_STRING}) +set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) +set(CPACK_COMPONENTS_ALL applications libraries headers Unspecified) +set(CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME "Applications") +set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries") +set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ Headers") +set(CPACK_COMPONENT_APPLICATIONS_DESCRIPTION + "Applications provided by OpenAuto") +set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION + "Static libraries used to build programs with OpenAuto") +set(CPACK_COMPONENT_HEADERS_DESCRIPTION + "C/C++ header files for use with OpenAuto") +set(CPACK_COMPONENT_LIBRARIES_GROUP "Development") +set(CPACK_COMPONENT_HEADERS_GROUP "Development") +set(CPACK_COMPONENT_GROUP_DEVELOPMENT_EXPANDED ON) +set(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION + "All of the tools you'll ever need to develop software") +set(CPACK_COMPONENT_HEADERS_DEPENDS libraries) +set(CPACK_COMPONENT_APPLICATIONS_DEPENDS libraries) +set(CPACK_ALL_INSTALL_TYPES Full Developer) +set(CPACK_INSTALL_TYPE_FULL_DISPLAY_NAME "Everything") +set(CPACK_COMPONENT_LIBRARIES_INSTALL_TYPES Developer Full) +set(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer Full) +set(CPACK_COMPONENT_APPLICATIONS_INSTALL_TYPES Full) +INCLUDE(CPack) \ No newline at end of file diff --git a/cmake_modules/gitversion.cmake b/cmake_modules/gitversion.cmake new file mode 100644 index 0000000..b3267b5 --- /dev/null +++ b/cmake_modules/gitversion.cmake @@ -0,0 +1,51 @@ +# cmake/gitversion.cmake +cmake_minimum_required(VERSION 3.0.0) + +message(STATUS "Resolving GIT Version") + +set(_build_version "unknown") +set(_commit_timestamp "unknown") + +find_package(Git) +if(GIT_FOUND) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD + WORKING_DIRECTORY "${local_dir}" + OUTPUT_VARIABLE _build_version + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY "${local_dir}" + OUTPUT_VARIABLE _build_branch + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + execute_process( + COMMAND ${GIT_EXECUTABLE} log -1 --format=%at + WORKING_DIRECTORY "${local_dir}" + OUTPUT_VARIABLE _commit_timestamp + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + message( STATUS "GIT hash: ${_build_version}; branch: ${_build_branch}; Commit epoch: ${_commit_timestamp};") + execute_process( + COMMAND ${GIT_EXECUTABLE} diff --no-ext-diff --quiet + WORKING_DIRECTORY "${local_dir}" + RESULT_VARIABLE ret + ) + if(ret EQUAL "1") + set(_build_changes "*") + else() + set(_build_changes "") + endif() + +else() + message(STATUS "GIT not found") +endif() + +# branch name +# git rev-parse --abbrev-ref HEAD +# changed +# git diff --no-ext-diff --quiet