浏览代码

* Moved all configurable variables to a new include file

* Use Find_Package to find local packages
* Improved tool
master
bergmann 6 年前
父节点
当前提交
0206941fa9
共有 9 个文件被更改,包括 65 次插入47 次删除
  1. +5
    -2
      CMakeLists.txt
  2. +2
    -19
      projects/helloworld/CMakeLists.txt
  3. +17
    -0
      projects/helloworld/cmake/helloworld-var.cmake
  4. +3
    -0
      projects/helloworld/src/CMakeLists.txt
  5. +3
    -21
      projects/libhelloworld/CMakeLists.txt
  6. +4
    -0
      projects/libhelloworld/cmake/libhelloworld-config.cmake
  7. +20
    -0
      projects/libhelloworld/cmake/libhelloworld-var.cmake
  8. +5
    -2
      projects/libhelloworld/src/CMakeLists.txt
  9. +6
    -3
      tool

+ 5
- 2
CMakeLists.txt 查看文件

@@ -20,8 +20,11 @@ If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" )

EndIf ( )

# Includes
Include ( CTest )
Include ( GNUInstallDirs )

# Projects ########################################################################################

Message ( WARNING "Please configure the subprojects of this project group!" )
Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/projects/libhelloworld )
Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/projects/helloworld )
# Find_Package ( <package> )

+ 2
- 19
projects/helloworld/CMakeLists.txt 查看文件

@@ -20,29 +20,12 @@ EndIf ( )

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

# Version
Set ( HELLOWORLD_VERSION_MAJOR 1 )
Set ( HELLOWORLD_VERSION_MINOR 0 )
Set ( HELLOWORLD_VERSION_PATCH 0 )
Set ( HELLOWORLD_VERSION_BUILD 0 )
Set ( HELLOWORLD_VERSION_SHORT "${HELLOWORLD_VERSION_MAJOR}.${HELLOWORLD_VERSION_MINOR}" )
Set ( HELLOWORLD_VERSION "${HELLOWORLD_VERSION_SHORT}.${HELLOWORLD_VERSION_PATCH}.${HELLOWORLD_VERSION_BUILD}" )
Set ( HELLOWORLD_NAME "helloworld-${HELLOWORLD_VERSION_SHORT}" )

# Install directories
Set ( HELLOWORLD_INSTALL_DIR_BIN "bin" )

# Project
Include ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/helloworld-var.cmake" )
Project ( helloworld
DESCRIPTION "A simple library"
VERSION "${HELLOWORLD_VERSION}" )
Include ( CTest )

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

# Subdirectories
Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src )


+ 17
- 0
projects/helloworld/cmake/helloworld-var.cmake 查看文件

@@ -0,0 +1,17 @@
# Version
Set ( HELLOWORLD_VERSION_MAJOR 1 )
Set ( HELLOWORLD_VERSION_MINOR 0 )
Set ( HELLOWORLD_VERSION_PATCH 0 )
Set ( HELLOWORLD_VERSION_BUILD 0 )
Set ( HELLOWORLD_VERSION_SHORT "${HELLOWORLD_VERSION_MAJOR}.${HELLOWORLD_VERSION_MINOR}" )
Set ( HELLOWORLD_VERSION "${HELLOWORLD_VERSION_SHORT}.${HELLOWORLD_VERSION_PATCH}.${HELLOWORLD_VERSION_BUILD}" )
Set ( HELLOWORLD_NAME "helloworld-${HELLOWORLD_VERSION_SHORT}" )

# Install directories
Set ( HELLOWORLD_INSTALL_DIR_BIN "bin" )

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

+ 3
- 0
projects/helloworld/src/CMakeLists.txt 查看文件

@@ -42,6 +42,9 @@ Target_Link_Libraries ( helloworld-objects

Set ( HELLOWORLD_MAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp )
Add_Executable ( helloworld ${HELLOWORLD_MAIN_FILE} )
Set_Target_Properties ( helloworld
PROPERTIES
VERSION ${HELLOWORLD_VERSION} )
Target_Link_Libraries ( helloworld
PUBLIC
helloworld-objects )


+ 3
- 21
projects/libhelloworld/CMakeLists.txt 查看文件

@@ -20,31 +20,12 @@ EndIf ( )

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

# Version
Set ( LIBHELLOWORLD_VERSION_MAJOR 1 )
Set ( LIBHELLOWORLD_VERSION_MINOR 0 )
Set ( LIBHELLOWORLD_VERSION_PATCH 0 )
Set ( LIBHELLOWORLD_VERSION_BUILD 0 )
Set ( LIBHELLOWORLD_VERSION_SHORT "${LIBHELLOWORLD_VERSION_MAJOR}.${LIBHELLOWORLD_VERSION_MINOR}" )
Set ( LIBHELLOWORLD_VERSION "${LIBHELLOWORLD_VERSION_SHORT}.${LIBHELLOWORLD_VERSION_PATCH}.${LIBHELLOWORLD_VERSION_BUILD}" )
Set ( LIBHELLOWORLD_NAME "libhelloworld-${LIBHELLOWORLD_VERSION_SHORT}" )

# Install directories
Set ( LIBHELLOWORLD_INSTALL_DIR_INCLUDE "include/${LIBHELLOWORLD_NAME}" )
Set ( LIBHELLOWORLD_INSTALL_DIR_LIB "lib/${LIBHELLOWORLD_NAME}" )
Set ( LIBHELLOWORLD_INSTALL_DIR_SHARE "share/${LIBHELLOWORLD_NAME}" )

# Project
Include ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/libhelloworld-var.cmake" )
Project ( libhelloworld
DESCRIPTION "A simple library"
VERSION "${LIBHELLOWORLD_VERSION}" )
Include ( CTest )

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

# Subdirectories
Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src )
@@ -61,6 +42,7 @@ Configure_File ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/libhellow

Set ( ConfigPackageLocation "${LIBHELLOWORLD_INSTALL_DIR_SHARE}/cmake" )
Install ( EXPORT libhelloworld
NAMESPACE libhelloworld::
DESTINATION ${ConfigPackageLocation} )
Install ( FILES
"${CMAKE_CURRENT_BINARY_DIR}/cmake/libhelloworld-config.cmake"


+ 4
- 0
projects/libhelloworld/cmake/libhelloworld-config.cmake 查看文件

@@ -2,3 +2,7 @@

Get_Filename_Component ( CURRENT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH )
Include ( ${CURRENT_DIR}/libhelloworld.cmake )

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

+ 20
- 0
projects/libhelloworld/cmake/libhelloworld-var.cmake 查看文件

@@ -0,0 +1,20 @@
# Version
Set ( LIBHELLOWORLD_VERSION_MAJOR 1 )
Set ( LIBHELLOWORLD_VERSION_MINOR 0 )
Set ( LIBHELLOWORLD_VERSION_PATCH 0 )
Set ( LIBHELLOWORLD_VERSION_BUILD 0 )
Set ( LIBHELLOWORLD_VERSION_SHORT "${LIBHELLOWORLD_VERSION_MAJOR}.${LIBHELLOWORLD_VERSION_MINOR}" )
Set ( LIBHELLOWORLD_VERSION "${LIBHELLOWORLD_VERSION_SHORT}.${LIBHELLOWORLD_VERSION_PATCH}.${LIBHELLOWORLD_VERSION_BUILD}" )
Set ( LIBHELLOWORLD_NAME "libhelloworld-${LIBHELLOWORLD_VERSION_SHORT}" )
Set ( LIBHELLOWORLD_OUTPUTNAME "helloworld" )

# Install directories
Set ( LIBHELLOWORLD_INSTALL_DIR_INCLUDE "include/${LIBHELLOWORLD_NAME}" )
Set ( LIBHELLOWORLD_INSTALL_DIR_LIB "lib" )
Set ( LIBHELLOWORLD_INSTALL_DIR_SHARE "share/${LIBHELLOWORLD_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 )

+ 5
- 2
projects/libhelloworld/src/CMakeLists.txt 查看文件

@@ -47,7 +47,8 @@ Message ( WARNING "Please configure the output name of the s
Add_Library ( libhelloworld-static STATIC $<TARGET_OBJECTS:libhelloworld-objects> )
Set_Target_Properties ( libhelloworld-static
PROPERTIES
OUTPUT_NAME "helloworld" )
OUTPUT_NAME "helloworld"
VERSION ${LIBHELLOWORLD_VERSION} )
Target_Include_Directories ( libhelloworld-static
PUBLIC
$<BUILD_INTERFACE:${LIBHELLOWORLD_INCLUDE_DIR}>
@@ -59,7 +60,9 @@ Message ( WARNING "Please configure the output name of the s
Add_Library ( libhelloworld-shared SHARED $<TARGET_OBJECTS:libhelloworld-objects> )
Set_Target_Properties ( libhelloworld-shared
PROPERTIES
OUTPUT_NAME "helloworld" )
OUTPUT_NAME "helloworld"
VERSION ${LIBHELLOWORLD_VERSION}
SOVERSION ${LIBHELLOWORLD_VERSION_SHORT} )
Target_Include_Directories ( libhelloworld-shared
PUBLIC
$<BUILD_INTERFACE:${LIBHELLOWORLD_INCLUDE_DIR}>


+ 6
- 3
tool 查看文件

@@ -221,7 +221,8 @@ while [ $# -gt 0 ]; do
if [ $# -lt 2 ]; then
Panic "Parameter $1 expects exactly one parameter!"
fi
Operations+=("grp:$2")
tmp=$(readlink -f "$2")
Operations+=("grp:$tmp")
shift
;;

@@ -229,7 +230,8 @@ while [ $# -gt 0 ]; do
if [ $# -lt 3 ]; then
Panic "Parameter $1 expects exactly two parameter!"
fi
Operations+=("lib:$2:$3")
tmp=$(readlink -f "$3")
Operations+=("lib:$2:$tmp")
shift
shift
;;
@@ -238,7 +240,8 @@ while [ $# -gt 0 ]; do
if [ $# -lt 3 ]; then
Panic "Parameter $1 expects exactly two parameter!"
fi
Operations+=("exe:$2:$3")
tmp=$(readlink -f "$3")
Operations+=("exe:$2:$tmp")
shift
shift
;;


正在加载...
取消
保存