Skip to content

Commit e896331

Browse files
authored
[FEAT] stdout judgement (#8)
* [FIX] Fix Reset Template * [ENHANCE] Add STDOUT Judgement --------- Co-authored-by: root <>
1 parent 2a4885e commit e896331

File tree

9 files changed

+56
-7
lines changed

9 files changed

+56
-7
lines changed

.templates/common/cmake/compilers/cuda-compiler-configs.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# @file compiler-configs-cuda.cmake
33
# @brief Compiler configurations for cuda.
44
#
5-
# @note Several parameters SHOULD be set BEFORE including this file:
5+
# @note Values SHOULD be set BEFORE including this file:
66
# - `ENV{NVCC_CCBIN}`: CUDA Compiler bindir. Default: auto-detected.
77
# - `CMAKE_CUDA_STANDARD`: CUDA Standard. Default: 20.
88
# ==================================================================================================

.templates/common/cmake/compilers/cxx-compiler-configs.cmake

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
# @file compiler-configs-cpp.cmake
33
# @brief Compiler configurations for the host.
44
#
5-
# @note Several parameters SHOULD be set BEFORE including this file:
5+
# @note Values MUST be set BEFORE including this file:
6+
# - `STDOUT_IS_TERMINAL`: Whether stdout is a terminal.
7+
# Values SHOULD be set BEFORE including this file:
68
# - `ENV{CXX}`: C++ Compiler. Default: auto-detected.
79
# - `CMAKE_CXX_STANDARD`: C++ Standard. Default: 20.
810
# - `CMAKE_CXX_SCAN_FOR_MODULES`: Whether to use modules. Default: OFF.
@@ -58,3 +60,11 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
5860
else()
5961
log_fatal("Unsupported compiler")
6062
endif()
63+
64+
if(STDOUT_IS_TERMINAL)
65+
add_compile_options(
66+
$<$<CXX_COMPILER_ID:GNU>:-fdiagnostics-color=always>
67+
$<$<CXX_COMPILER_ID:Clang>:-fcolor-diagnostics>
68+
$<$<CXX_COMPILER_ID:MSVC>:/FC>
69+
)
70+
endif()

.templates/common/cmake/libraries/libcuda.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# @brief Enable CUDA support.
33
# @see "https://cliutils.gitlab.io/modern-cmake/chapters/packages/CUDA.html"
44
#
5-
# @note Several parameters should be set before including this file:
5+
# @note Values should be set before including this file:
66
# - CUDA_HOME/CUDA_DIR/ENV{CUDA_HOME}/ENV{CUDA_DIR}:
77
# Path to spdlog libaray installation path.
88
# ==================================================================================================

.templates/common/cmake/libraries/libpython.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# [SEE] https://cmake.org/cmake/help/latest/module/FindPython.html
1+
# [SEE] "https://cmake.org/cmake/help/latest/module/FindPython.html"
22
find_package(
33
Python
44
REQUIRED

.templates/common/cmake/utils/logging.cmake

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
# @brief Compiler configurations for cuda.
44
#
55
# @note This file shoule NEVER include any other file (to avoid circular dependencies).
6+
#
7+
# @note Values MUST be set BEFORE including this file:
8+
# - `STDOUT_IS_TERMINAL`: Whether stdout is a terminal.
69
# ==================================================================================================
710

811
string(ASCII 27 Esc)
912

10-
if(CMAKE_COLOR_DIAGNOSTICS)
13+
if(STDOUT_IS_TERMINAL)
1114
set(LOG_RED "${Esc}[0;31m")
1215
set(LOG_GREEN "${Esc}[0;32m")
1316
set(LOG_YELLOW "${Esc}[0;33m")
@@ -28,11 +31,11 @@ else()
2831
endif()
2932

3033
if(NOT DEFINED LOG_PREFIX)
31-
set(LOG_PREFIX "${LOG_PURPLE}_template_project_name_${LOG_RESET}")
34+
set(LOG_PREFIX "_template_project_name_")
3235
endif()
3336

3437
function(log_info msg)
35-
message(STATUS "[${LOG_PREFIX}|${LOG_GREEN}INFO${LOG_RESET}] >>> ${msg}")
38+
message(STATUS "[${LOG_PURPLE}${LOG_PREFIX}${LOG_RESET}|${LOG_GREEN}INFO${LOG_RESET}] >>> ${msg}")
3639
endfunction()
3740

3841
function(log_warning msg)

.templates/cuda_exe/scripts/build.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ BUILD_TYPE=Release
88
CXX_STANDARD=20
99
CUDA_STANDARD=20
1010

11+
if [ -t 1 ]; then
12+
STDOUT_IS_TERMINAL=ON
13+
export GTEST_COLOR=yes
14+
else
15+
STDOUT_IS_TERMINAL=OFF
16+
export GTEST_COLOR=no
17+
fi
18+
1119
while [[ $# -gt 0 ]]; do
1220
case $1 in
1321
-S|--source-dir)
@@ -33,6 +41,7 @@ while [[ $# -gt 0 ]]; do
3341
done
3442

3543
cmake -G Ninja -S $SOURCE_DIR -B $BUILD_DIR \
44+
-DSTDOUT_IS_TERMINAL=$STDOUT_IS_TERMINAL \
3645
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
3746
-DCMAKE_CXX_STANDARD=$CXX_STANDARD \
3847
-DCMAKE_CUDA_STANDARD=$CUDA_STANDARD

.templates/cuda_lib/scripts/build.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ CXX_STANDARD=20
99
CUDA_STANDARD=20
1010
BUILD_SHARED_LIBS=OFF
1111

12+
if [ -t 1 ]; then
13+
STDOUT_IS_TERMINAL=ON
14+
export GTEST_COLOR=yes
15+
else
16+
STDOUT_IS_TERMINAL=OFF
17+
export GTEST_COLOR=no
18+
fi
19+
1220
while [[ $# -gt 0 ]]; do
1321
case $1 in
1422
-S|--source-dir)
@@ -36,6 +44,7 @@ while [[ $# -gt 0 ]]; do
3644
done
3745

3846
cmake -G Ninja -S $SOURCE_DIR -B $BUILD_DIR \
47+
-DSTDOUT_IS_TERMINAL=$STDOUT_IS_TERMINAL \
3948
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
4049
-DCMAKE_CXX_STANDARD=$CXX_STANDARD \
4150
-DCMAKE_CUDA_STANDARD=$CUDA_STANDARD \

.templates/cxx_exe/scripts/build.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ BUILD_DIR=./build
77
BUILD_TYPE=Release
88
CXX_STANDARD=20
99

10+
if [ -t 1 ]; then
11+
STDOUT_IS_TERMINAL=ON
12+
export GTEST_COLOR=yes
13+
else
14+
STDOUT_IS_TERMINAL=OFF
15+
export GTEST_COLOR=no
16+
fi
17+
1018
while [[ $# -gt 0 ]]; do
1119
case $1 in
1220
-S|--source-dir)
@@ -30,6 +38,7 @@ while [[ $# -gt 0 ]]; do
3038
done
3139

3240
cmake -G Ninja -S $SOURCE_DIR -B $BUILD_DIR \
41+
-DSTDOUT_IS_TERMINAL=$STDOUT_IS_TERMINAL \
3342
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
3443
-DCMAKE_CXX_STANDARD=$CXX_STANDARD
3544

.templates/cxx_lib/scripts/build.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ BUILD_TYPE=Release
88
CXX_STANDARD=20
99
BUILD_SHARED_LIBS=OFF
1010

11+
if [ -t 1 ]; then
12+
STDOUT_IS_TERMINAL=ON
13+
export GTEST_COLOR=yes
14+
else
15+
STDOUT_IS_TERMINAL=OFF
16+
export GTEST_COLOR=no
17+
fi
18+
1119
while [[ $# -gt 0 ]]; do
1220
case $1 in
1321
-S|--source-dir)
@@ -33,6 +41,7 @@ while [[ $# -gt 0 ]]; do
3341
done
3442

3543
cmake -G Ninja -S $SOURCE_DIR -B $BUILD_DIR \
44+
-DSTDOUT_IS_TERMINAL=$STDOUT_IS_TERMINAL \
3645
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
3746
-DCMAKE_CXX_STANDARD=$CXX_STANDARD \
3847
-DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS

0 commit comments

Comments
 (0)