2015-09-07 27 views
0

我以前從未使用CMake,所以請原諒我。Clion 1.1.1使用CMakeList.txt爲unity添加庫頭文件

我的項目有一個包含版本2.3.0的單元測試庫的「統一」文件夾)。 unity_fixture.h包含一個用於類似下面 「的#define TEST(...」:

#include "unity_fixture.h" ... TEST(xformatc, Simple) { char output[20]; TEST_ASSERT_EQUAL(13, testFormat(output, "Hello world\r\n")); TEST_ASSERT_EQUAL_STRING("Hello world\r\n", output); }

我補充說: 「include_directories($ {} CMAKE_SOURCE_DIR /單位)」 我的CMakeLists.txt文件仍然。 CLion沒有找到TEST的聲明,我得到了很多的錯誤 我嘗試添加所有的統一文件與設置(SOURCE_FILES unity/unity_fixture.h ...「但是這也不起作用。 08.09.2015 我發現了一些奇怪的東西如果我從命令行調用cmake,它會創建一個文件「DependInfo.cmake」,其內容如下:

# The set of languages for which implicit dependencies are needed: set(CMAKE_DEPENDS_LANGUAGES ) # The set of files for implicit dependencies of each language:

# Targets to which this target links. 
set(CMAKE_TARGET_LINKED_INFO_FILES 
) 

# The include file search paths: 
set(CMAKE_C_TARGET_INCLUDE_PATH 
    "unity" 
    "cmsis/inc" 
    "freertos/inc" 
) 
set(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH}) 
set(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH}) 
set(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH}) 

的CMAKE_C_TARGET_INCLUDE_PATH東西丟失由克利翁創建的文件中。我相信這就是它沒有找到標題的原因。問題是我如何告訴CLion創建CMAKE_C_TARGET_INCLUDE_PATH?

回答

1

我認爲你的項目結構爲:

project root 
├── CMakeLists.txt 
├── Some source files 
└── unity 
    └── unity_fixture.h 

如果使用CMake的包含文件:

set(INCLUDE_DIR ./unity) 
include_directories(${INCLUDE_DIR}) 

你有必須是:#include <unity_fixture.h>

或者你也可以不使用使用CMake包括目錄:#include "unity/unity_fixture.h"

+0

嗯,我不明白你提出的解決方案是不同的,但我試過了...不幸的是,它沒有解決問題:(。我應該在開頭就說過,項目結構本身很好。它使用GNU make完美編譯。 – mark

+0

嗯,好吧CMake使用''''而不是''「」'來修改Makefile(或者等同於操作系統/你說他要做的事情),其他的東西就是讓你的CMake更簡單在CLION創建文件之後,在他的個人空間中,在'〜/ .clion11/system/cmake/generated'目錄下,此時我無法確定哪裏出了問題,你可以在這裏粘貼你的完整CMake /與github(或類似的東西)? – Waxo

+0

項目在這裏:https://github.com/finklabs/epiclibs,但我沒有檢查CMakeLists.txt文件,因爲它是壞的 – mark