🎉 C project.
parent
6bf4a23da5
commit
e0502c7825
|
@ -0,0 +1,4 @@
|
||||||
|
*~*
|
||||||
|
*\#*
|
||||||
|
build
|
||||||
|
.cache
|
|
@ -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)
|
|
@ -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
|
|
@ -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
|
||||||
|
)
|
|
@ -0,0 +1,7 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
printf("Hello World!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -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
|
||||||
|
)
|
|
@ -0,0 +1,5 @@
|
||||||
|
#ifndef SK_COMMONS_H
|
||||||
|
#define SK_COMMONS_H
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1 @@
|
||||||
|
#include "commons.h"
|
|
@ -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
|
||||||
|
)
|
|
@ -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;
|
||||||
|
}
|
Loading…
Reference in New Issue