用CMake和Clion构建C项目
我在clion中有以下项目结构:用CMake和Clion构建C项目,c,cmake,clion,directory-structure,C,Cmake,Clion,Directory Structure,我在clion中有以下项目结构: ├── CMakeLists.txt ├── src │ ├── func1.c │ ├── func1.h │ └── main.c └── test └── unit └── test_func1.c 其中CMakeLists.txt: cmake_minimum_required(VERSION 3.5) project(untitled) set(CMAKE_C_STANDARD 11)
├── CMakeLists.txt
├── src
│ ├── func1.c
│ ├── func1.h
│ └── main.c
└── test
└── unit
└── test_func1.c
其中CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
project(untitled)
set(CMAKE_C_STANDARD 11)
find_library(CMOCKA_LIBRARY libcmocka.so)
# application binary
set(SOURCE_FILES src/main.c src/func1.c src/func1.h)
add_executable(untitled ${SOURCE_FILES})
# test binary
include_directories("${CMAKE_SOURCE_DIR}/src")
set(TEST_SOURCE_FILES src/func1.c src/func1.h test/unit/test_func1.c)
add_executable(unit_tests ${TEST_SOURCE_FILES})
target_link_libraries(unit_tests ${CMOCKA_LIBRARY})
主要条款c:
#include <stdio.h>
#include "func1.h"
int main() {
printf("Hello, World!\n");
print_hello();
return 0;
}
当我从clion内部构建应用程序时,它只构建未命名的
应用程序二进制文件,它不构建测试二进制文件。为了建造
在测试中,我必须创建一个构建目录并手动调用cmake和make
我想:
#include <stdlib.h>
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
#include "func1.h"
static void test_func1(void **state){
int ret = print_hello();
assert_true(ret == 0);
}
int main(int argc, char **argv){
const UnitTest tests[] = {
unit_test(test_func1),
};
return run_tests(tests);
}
#include <stdio.h>
#include "func1.h"
int print_hello(){
printf("hello");
return 0;
}
#ifndef UNTITLED_FUNC1_H
#define UNTITLED_FUNC1_H
int print_hello();
#endif //UNTITLED_FUNC1_H