🎉 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