🎉 C project.

main
bog 2024-03-31 17:44:34 +02:00
parent 6bf4a23da5
commit e0502c7825
10 changed files with 130 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*~*
*\#*
build
.cache

10
CMakeLists.txt Normal file
View File

@ -0,0 +1,10 @@
cmake_minimum_required(VERSION 3.29)
project(skopy)
set(CMAKE_INSTALL_PREFIX /usr)
set(CMAKE_EXPORT_COMPILE_COMMANDS On)
add_subdirectory(tests)
add_subdirectory(lib)
add_subdirectory(cli)

17
Makefile Normal file
View File

@ -0,0 +1,17 @@
.PHONY: build tests install
build:
cmake -B build
cmake --build build
tests: build
build/tests/skopy-tests \
&& echo -e "\e[32m--- all tests passed ---\e[0m" \
|| echo -e "\e[31m--- some tests failed ---\e[0m"
install: tests
sudo cmake --install build
check:
@cppcheck --enable=all -q lib tests cli \
--suppress=missingIncludeSystem

15
cli/CMakeLists.txt Normal file
View File

@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 3.29)
project(skopy-cli)
add_executable(skopy
main.c
)
set_property(TARGET skopy PROPERTY C_STANDARD 99)
add_dependencies(skopy skopy-lib)
install(TARGETS skopy)
target_link_libraries(skopy
PUBLIC skopy-lib
)

7
cli/main.c Normal file
View File

@ -0,0 +1,7 @@
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}

29
lib/CMakeLists.txt Normal file
View File

@ -0,0 +1,29 @@
cmake_minimum_required(VERSION 3.29)
project(skopy-lib)
add_library(skopy-lib SHARED
src/commons.c
)
file(GLOB_RECURSE
includes
include/*.h
)
install(TARGETS skopy-lib)
install(
FILES ${includes}
DESTINATION "${CMAKE_INSTALL_PREFIX}/include/skopy"
)
set_property(TARGET skopy-lib PROPERTY C_STANDARD 99)
target_include_directories(skopy-lib
PUBLIC ${CMAKE_SOURCE_DIR}/lib/include
)
target_compile_options(skopy-lib
PUBLIC -Wall -Wextra -g
)

5
lib/include/commons.h Normal file
View File

@ -0,0 +1,5 @@
#ifndef SK_COMMONS_H
#define SK_COMMONS_H
#endif

1
lib/src/commons.c Normal file
View File

@ -0,0 +1 @@
#include "commons.h"

18
tests/CMakeLists.txt Normal file
View File

@ -0,0 +1,18 @@
cmake_minimum_required(VERSION 3.29)
project(skopy-tests)
add_executable(skopy-tests
main.c
)
set_property(TARGET skopy-tests PROPERTY C_STANDARD 99)
add_dependencies(skopy-tests skopy-lib)
find_package(PkgConfig)
pkg_check_modules(CUNIT cunit REQUIRED IMPORTED_TARGET)
target_link_libraries(skopy-tests
PUBLIC skopy-lib
PRIVATE PkgConfig::CUNIT
)

24
tests/main.c Normal file
View File

@ -0,0 +1,24 @@
#include <CUnit/CUnit.h>
#include <CUnit/Basic.h>
void test_trivial()
{
CU_ASSERT(1 + 1 == 2);
}
int main()
{
CU_initialize_registry();
CU_pSuite suite = CU_add_suite("First suite", 0, 0);
CU_add_test(suite, "Trivial", test_trivial);
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
int status = CU_get_number_of_failures();
CU_cleanup_registry();
return status;
}