Skip to content

Commit

Permalink
up
Browse files Browse the repository at this point in the history
  • Loading branch information
franneck94 committed Nov 29, 2022
1 parent bc35bfc commit dcce16e
Show file tree
Hide file tree
Showing 16 changed files with 736 additions and 509 deletions.
94 changes: 94 additions & 0 deletions .cmake-format.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# -----------------------------
# Options affecting formatting.
# -----------------------------
with section("format"):
line_width = 80
tab_size = 4
use_tabchars = False
fractional_tab_policy = 'use-space'

# If an argument group contains more than this many sub-groups (parg or kwarg
# groups) then force it to a vertical layout.
max_subgroups_hwrap = 2

# If a positional argument group contains more than this many arguments, then
# force it to a vertical layout.
max_pargs_hwrap = 3

# If a cmdline positional group consumes more than this many lines without
# nesting, then invalidate the layout (and nest)
max_rows_cmdline = 2

# If true, separate flow control names from their parentheses with a space
separate_ctrl_name_with_space = False

# If true, separate function names from parentheses with a space
separate_fn_name_with_space = False

# If a statement is wrapped to more than one line, than dangle the closing
# parenthesis on its own line.
dangle_parens = False

# If the trailing parenthesis must be 'dangled' on its on line, then align it
# to this reference: `prefix`: the start of the statement, `prefix-indent`:
# the start of the statement, plus one indentation level, `child`: align to
# the column of the arguments
dangle_align = 'prefix'

# If the statement spelling length (including space and parenthesis) is
# smaller than this amount, then force reject nested layouts.
min_prefix_chars = 4

# If the statement spelling length (including space and parenthesis) is larger
# than the tab width by more than this amount, then force reject un-nested
# layouts.
max_prefix_chars = 10

# If a candidate layout is wrapped horizontally but it exceeds this many
# lines, then reject the layout.
max_lines_hwrap = 1

# What style line endings to use in the output.
line_ending = 'unix'

# Format command names consistently as 'lower' or 'upper' case
command_case = 'canonical'

# Format keywords consistently as 'lower' or 'upper' case
keyword_case = 'unchanged'

# A list of command names which should always be wrapped
always_wrap = []

# If true, the argument lists which are known to be sortable will be sorted
# lexicographicall
enable_sort = True

# If true, the parsers may infer whether or not an argument list is sortable
# (without annotation).
autosort = False

# By default, if cmake-format cannot successfully fit everything into the
# desired linewidth it will apply the last, most agressive attempt that it
# made. If this flag is True, however, cmake-format will print error, exit
# with non-zero status code, and write-out nothing
require_valid_layout = False

# A dictionary mapping layout nodes to a list of wrap decisions. See the
# documentation for more information.
layout_passes = {}

# -------------------------------
# Options affecting file encoding
# -------------------------------
with section("encode"):

# If true, emit the unicode byte-order mark (BOM) at the start of the file
emit_byteorder_mark = False

# Specify the encoding of the input file. Defaults to utf-8
input_encoding = 'utf-8'

# Specify the encoding of the output file. Defaults to utf-8. Note that cmake
# only claims to support utf-8 so be careful when using anything else
output_encoding = 'utf-8'
3 changes: 0 additions & 3 deletions .github/workflows/documentation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ jobs:
- name: Install Docs
run: |
make install_doc
- name: Setup
run: |
make setup
- name: prepare
run: |
make prepare
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: setup
run: |
make setup
- name: prepare
run: |
make prepare
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ jobs:
- name: install
run: |
make install
- name: setup
run: |
make setup
- name: prepare
run: |
make prepare
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: setup
run: |
make setup
- name: prepare
run: |
make prepare
Expand Down
53 changes: 29 additions & 24 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
cmake_minimum_required(VERSION 3.16)

project("CTemplate" VERSION 1.0.0 LANGUAGES C)
project(
"CTemplate"
VERSION 1.0.0
LANGUAGES C)

# Global CMake variables are set here
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# Options
option(ENABLE_WARNINGS "Enable to add warnings to a target." ON)
option(ENABLE_TESTING "Enable a Unit Testing build." ON)
option(ENABLE_COVERAGE "Enable a Code Coverage build." OFF)
option(ENABLE_LTO "Enable to add Link Time Optimization." OFF)
option(ENABLE_CCACHE "Enable to add Ccache." OFF)
option(ENABLE_WARNINGS "Enable to add warnings to a target." ON)
option(ENABLE_TESTING "Enable a Unit Testing build." ON)
option(ENABLE_COVERAGE "Enable a Code Coverage build." OFF)
option(ENABLE_LTO "Enable to add Link Time Optimization." OFF)
option(ENABLE_CCACHE "Enable to add Ccache." OFF)

# Project/Library Names
set(LIBRARY_NAME "lib")
set(LIBRARY_NAME "lib")
set(EXECUTABLE_NAME "main")

### CMAKE MODULES
# CMAKE MODULES

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/)
include(ConfigSafeGuards)
Expand All @@ -29,17 +32,17 @@ include(AddGitSubmodule)
include(FetchContent)
include(LTO)

if (ENABLE_COVERAGE)
if(ENABLE_COVERAGE)
include(CTest)
include(CodeCoverage)
append_coverage_compiler_flags()
endif()

if (ENABLE_LTO)
if(ENABLE_LTO)
find_lto(C)
endif()

### EXTERNAL LIBRARIES
# EXTERNAL LIBRARIES

add_git_submodule(external/log)

Expand All @@ -57,22 +60,24 @@ FetchContent_Declare(
GIT_SHALLOW TRUE)
FetchContent_MakeAvailable(argparse)

### SUB DIRECTORIES
# SUB DIRECTORIES

add_subdirectory(configured)
add_subdirectory(external)
add_subdirectory(src)
add_subdirectory(app)
add_subdirectory(tests)

### INSTALL TARGETS
# INSTALL TARGETS

install(TARGETS ${EXECUTABLE_NAME}
EXPORT ${LIBRARY_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin)
install(
TARGETS ${EXECUTABLE_NAME}
EXPORT ${LIBRARY_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin)

install(TARGETS ${LIBRARY_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
install(
TARGETS ${LIBRARY_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright 2020, Jan Schaffranek.
Copyright 2022, Jan Schaffranek.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction,
Expand Down
22 changes: 11 additions & 11 deletions app/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
set(APP_SOURCES
"main.c")
set(APP_SOURCES "main.c")

add_executable(${EXECUTABLE_NAME}
${APP_SOURCES})
add_executable(${EXECUTABLE_NAME} ${APP_SOURCES})

target_link_libraries(${EXECUTABLE_NAME} PUBLIC
${LIBRARY_NAME}
log
argparse
)
target_link_libraries(${EXECUTABLE_NAME} PUBLIC ${LIBRARY_NAME} log argparse)

if (${ENABLE_WARNINGS})
target_set_warnings(TARGET ${LIBRARY_NAME} ENABLE ON AS_ERROR OFF)
if(${ENABLE_WARNINGS})
target_set_warnings(
TARGET
${LIBRARY_NAME}
ENABLE
ON
AS_ERROR
OFF)
endif()
5 changes: 3 additions & 2 deletions cmake/AddGitSubmodule.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ function(add_git_submodule dir)
find_package(Git REQUIRED)

if(NOT EXISTS ${dir}/CMakeLists.txt)
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive -- ${dir}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
execute_process(
COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive --
${dir} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
endif()

if(EXISTS ${dir}/CMakeLists.txt)
Expand Down
Loading

0 comments on commit dcce16e

Please sign in to comment.