Browse Source

* Updated project structure

master
bergmann 4 years ago
parent
commit
de8647af14
8 changed files with 100 additions and 71 deletions
  1. +1
    -0
      CMakeLists.txt
  2. +0
    -4
      cmake/cppmp-config.cmake
  3. +6
    -0
      cmake/cppmp-options.cmake
  4. +39
    -26
      cmake/cppmp-var.cmake
  5. +1
    -1
      cmake/modules
  6. +9
    -7
      src/CMakeLists.txt
  7. +44
    -30
      test/CMakeLists.txt
  8. +0
    -3
      test/cppmp/cppmp_tests.cpp

+ 1
- 0
CMakeLists.txt View File

@@ -20,6 +20,7 @@ EndIf ( )

# Project #########################################################################################

Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-options.cmake )
Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-var.cmake )
Project ( cppmp
DESCRIPTION "A simple library"


+ 0
- 4
cmake/cppmp-config.cmake View File

@@ -1,9 +1,5 @@
# cppmp-config.cmake - package configuration file

Message ( WARNING "Please configure the dependencies of this package!" )
# Include ( CMakeFindDependencyMacro )
# Find_Dependency ( <dependency> )

Include ( FindPackageHandleStandardArgs )
Set ( ${CMAKE_FIND_PACKAGE_NAME}_CONFIG ${CMAKE_CURRENT_LIST_FILE} )
Find_Package_Handle_Standard_Args ( cppmp CONFIG_MODE )


+ 6
- 0
cmake/cppmp-options.cmake View File

@@ -0,0 +1,6 @@
Option ( CPPMP_INSTALL_HEADER
"Install headers of cppmp."
ON )
Option ( CPPMP_USE_GIT_VERSION
"Read the git tags to get the version of cppmp"
ON )

+ 39
- 26
cmake/cppmp-var.cmake View File

@@ -1,31 +1,44 @@
# Version
Set ( CPPMP_VERSION_MAJOR 1 )
Set ( CPPMP_VERSION_MINOR 0 )
Set ( CPPMP_VERSION_PATCH 0 )
Set ( CPPMP_VERSION_BUILD 0 )
Set ( CPPMP_VERSION_SHORT "${CPPMP_VERSION_MAJOR}.${CPPMP_VERSION_MINOR}" )
Set ( CPPMP_VERSION "${CPPMP_VERSION_SHORT}.${CPPMP_VERSION_PATCH}.${CPPMP_VERSION_BUILD}" )
Set ( CPPMP_NAME "cppmp-${CPPMP_VERSION_SHORT}" )
Set ( CPPMP_OUTPUTNAME "cppmp" )
Set ( CPPMP_VERSION_MAJOR 1 )
Set ( CPPMP_VERSION_MINOR 0 )
Set ( CPPMP_VERSION_PATCH 0 )
Set ( CPPMP_VERSION_BUILD 0 )
Set ( CPPMP_VERSION_HASH "" )
Set ( CPPMP_VERSION_BEHIND 0 )
Set ( CPPMP_VERSION_DIRTY 0 )

# Git Version
If ( CPPMP_USE_GIT_VERSION )
Include ( git_helper OPTIONAL RESULT_VARIABLE HAS_GIT_HELPER )
If ( HAS_GIT_HELPER )
GitGetVersion ( ${CMAKE_CURRENT_LIST_DIR}/..
CPPMP_VERSION_MAJOR
CPPMP_VERSION_MINOR
CPPMP_VERSION_PATCH
CPPMP_VERSION_BUILD
CPPMP_VERSION_HASH
CPPMP_VERSION_BEHIND
CPPMP_VERSION_DIRTY )
EndIf ( )
EndIf ( )

# Strings
Set ( CPPMP_VERSION_SHORT "${CPPMP_VERSION_MAJOR}.${CPPMP_VERSION_MINOR}" )
Set ( CPPMP_VERSION "${CPPMP_VERSION_SHORT}.${CPPMP_VERSION_PATCH}.${CPPMP_VERSION_BUILD}" )
Set ( CPPMP_VERSION_COMPLETE "${CPPMP_VERSION}" )
Set ( CPPMP_NAME "cppmp-${CPPMP_VERSION_SHORT}" )
Set ( CPPMP_OUTPUTNAME "cppmp" )
If ( CPPMP_VERSION_BEHIND )
Set ( CPPMP_VERSION_COMPLETE "${CPPMP_VERSION_COMPLETE}+${CPPMP_VERSION_BEHIND}" )
EndIf ( )

# Install directories
Set ( CPPMP_INSTALL_DIR_INCLUDE "include/${CPPMP_NAME}" )
Set ( CPPMP_INSTALL_DIR_LIB "lib" )
Set ( CPPMP_INSTALL_DIR_SHARE "share/${CPPMP_NAME}" )
Set ( CPPMP_INSTALL_DIR_INCLUDE "include/${CPPMP_NAME}" )
Set ( CPPMP_INSTALL_DIR_LIB "lib" )
Set ( CPPMP_INSTALL_DIR_SHARE "share/${CPPMP_NAME}" )

# C Standard
Set ( CMAKE_C_STANDARD 11 )
Set ( CMAKE_CXX_STANDARD 17 )
Set ( CMAKE_C_STANDARD_REQUIRED ON )
Set ( CMAKE_CXX_STANDARD_REQUIRED ON )

# Git Version
Include ( git_helper OPTIONAL RESULT_VARIABLE HAS_GIT_HELPER )
If ( HAS_GIT_HELPER )
GitGetVersion ( ${CMAKE_CURRENT_LIST_DIR}/..
CPPMP_VERSION_MAJOR
CPPMP_VERSION_MINOR
CPPMP_VERSION_PATCH
CPPMP_VERSION_BUILD
CPPMP_VERSION_HASH )
EndIf ( )
Set ( CMAKE_C_STANDARD 11 )
Set ( CMAKE_CXX_STANDARD 17 )
Set ( CMAKE_C_STANDARD_REQUIRED ON )
Set ( CMAKE_CXX_STANDARD_REQUIRED ON )

+ 1
- 1
cmake/modules

@@ -1 +1 @@
Subproject commit 1a32531aef2deeebd5637b1873bc4e976628801c
Subproject commit 4953cd4cc849afdfa02a6057b5a2011fb62e91a6

+ 9
- 7
src/CMakeLists.txt View File

@@ -16,10 +16,12 @@ Target_Include_Directories ( cppmp
# Install #########################################################################################

# Header
Install ( FILES ${CPPMP_INCLUDE_DIR}/cppmp.h
DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} )
Install ( DIRECTORY ${CPPMP_INCLUDE_DIR}/cppmp
DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} )
Install ( TARGETS cppmp
EXPORT cppmp
DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} )
If ( CPPMP_INSTALL_HEADER )
Install ( FILES ${CPPMP_INCLUDE_DIR}/cppmp.h
DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} )
Install ( DIRECTORY ${CPPMP_INCLUDE_DIR}/cppmp
DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} )
Install ( TARGETS cppmp
EXPORT cppmp
DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} )
EndIf ( )

+ 44
- 30
test/CMakeLists.txt View File

@@ -11,33 +11,47 @@ If ( NOT "${GTest_FOUND}" )
Return ( )
EndIf ( )

File ( GLOB_RECURSE CPPMP_TEST_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h )
File ( GLOB_RECURSE CPPMP_TEST_INLINE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.inl )
File ( GLOB_RECURSE CPPMP_TEST_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp )

Add_Executable ( cppmp-test
EXCLUDE_FROM_ALL
${CPPMP_TEST_HEADER_FILES}
${CPPMP_TEST_INLINE_FILES}
${CPPMP_TEST_SOURCE_FILES} )
Target_Link_Libraries ( cppmp-test
PUBLIC
cppmp
GTest::Main )

# pedantic
If ( HAS_PEDANTIC )
Pedantic_Apply_Flags_Target ( cppmp-test ALL )
EndIf ( )

# optimization
If ( HAS_COTIRE )
Cotire ( cppmp-test )
EndIf ( )

# test
If ( HAS_CMAKE_TESTS )
Add_CMake_Test ( NAME cppmp TARGET cppmp-test )
Else ( )
Add_Test ( NAME cppmp COMMAND cppmp-test )
EndIf ( )
File ( GLOB_RECURSE CPPMP_TEST_HEADER_FILES
${CMAKE_CURRENT_SOURCE_DIR}/*.h )
File ( GLOB_RECURSE CPPMP_TEST_INLINE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/*.inl )
File ( GLOB_RECURSE CPPMP_TEST_SOURCE_FILES
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp )

ForEach ( FILE IN LISTS CPPMP_TEST_SOURCE_FILES )
# add test
Get_Filename_Component ( TEST_DIR ${FILE} DIRECTORY )
Get_Filename_Component ( TEST_NAME ${FILE} NAME_WE )
Set ( TEST_NAME "${TEST_DIR}/${TEST_NAME}" )
String ( REPLACE "\\" "-" TEST_NAME "${TEST_NAME}" )
String ( REPLACE "/" "-" TEST_NAME "${TEST_NAME}" )
String ( REPLACE "_" "-" TEST_NAME "${TEST_NAME}" )
Set ( TEST_NAME "test-${TEST_NAME}" )
Add_Executable ( ${TEST_NAME}
EXCLUDE_FROM_ALL
${CPPMP_TEST_HEADER_FILES}
${CPPMP_TEST_INLINE_FILES}
${FILE} )
Target_Link_Libraries ( ${TEST_NAME}
PUBLIC
cppmp
GTest::Main )

# pedantic
If ( HAS_PEDANTIC )
Pedantic_Apply_Flags_Target ( ${TEST_NAME} ALL )
EndIf ( )

# optimization
If ( HAS_COTIRE )
Cotire ( ${TEST_NAME} )
EndIf ( )

# test
If ( HAS_CMAKE_TESTS )
Add_CMake_Test ( NAME ${TEST_NAME} TARGET ${TEST_NAME} )
Else ( )
Add_Test ( NAME ${TEST_NAME} COMMAND ${TEST_NAME} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
EndIf ( )
EndForEach ( )

+ 0
- 3
test/cppmp/cppmp_tests.cpp View File

@@ -1,3 +0,0 @@
#include <gtest/gtest.h>

#include <cppmp.h>

Loading…
Cancel
Save