2012-01-16 109 views
5

我需要配置文件從C++轉換爲JS,我試圖在項目中使用emscripten。 Emscripte附帶了一個名爲emconfigure的工具,它取代了autoconf配置,但它取代了autoconf配置,但我正在構建的項目使用cmake作爲構建系統,並且當前(1月12日)emscripten只支持autoconf - 所以我繞過它通過生成配置和做一個端口的make,所以有辦法從cmake創建配置文件?我不是在討論make文件,而是配置文件本身。CMake可以生成配置文件嗎?

+0

通過你想翻譯的語言的方式。你可以說得更詳細點嗎? – Neox 2012-01-16 23:29:27

+1

這個問題目前還不清楚。 CMake無法以autoconf的方式生成一個名爲configure的腳本 - 它的工作方式與做類似的工作不同。但它可以對源樹中的文件執行配置操作。正在做什麼語言翻譯? emscripte與什麼有關? – mabraham 2014-12-22 17:51:22

回答

15

是的,它可以:

configure_file(<input> <output> 
       [COPYONLY] [ESCAPE_QUOTES] [@ONLY] 
       [NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ]) 

Example.h.in

#ifndef EXAMPLE_H 
#define EXAMPLE_H 

/* 
* These values are automatically set according to their cmake variables. 
*/ 
#define EXAMPLE "${VALUE}" 
#define VERSION "${VERSION}" 
#define NUMBER ${NUMBER} 

#endif /* EXAMPLE_H */ 

在你cmake的文件:

set(EXAMPLE "This is an example") 
set(VERSION "1.0") 
set(NUMBER 3) 

configure_file(Example.h.in Example.h) 

配置Example.h

#ifndef EXAMPLE_H 
#define EXAMPLE_H 

/* 
* These values are automatically set according to their cmake variables. 
*/ 
#define EXAMPLE "This is an example" 
#define VERSION "1.0" 
#define NUMBER 3 

#endif /* EXAMPLE_H */ 

文檔:

+0

真棒,感謝您的答案。很有幫助 !! – Jacko 2015-11-12 01:24:02

+0

如果變量的計算結果爲false,CMake將取消。例如如果數字是0,它不會定義它。無論如何解決這個問題?我只是用ifndef來解決它。 – 2016-02-18 07:42:51

+0

你使用'#cmakedefine'還是普通的'#define'?後者不應該這樣做。如果它不起作用,您可以在模板文件中添加一個'#ifnedf ... #define ...'。 – ollo 2016-03-06 17:51:52

0

yes cmake根據您的目標平臺爲您生成構建項目所需的文件。但是你需要自己爲CMake編寫CMakelist.txt文件,或者你必須從其他人那裏獲取它們。如果emscripten擁有它們並且安裝了cmake,請轉至您的cource目錄的根目錄並啓動cmake以查看可以使用的參數列表

-7

Cmake是一個構建系統。它生成Makefiles。查看here瞭解更多信息。但是要簡要回答你的問題,不能用cmake生成配置文件。

+2

明顯錯誤,與接受的答案進行比較。 – usr1234567 2015-03-21 10:36:18

0

事實上,不要生成一個「set」,但是你可以使用函數完成他所做的一切,比如vereficação數據類型,vereficar頭文件等等。

那麼,我會去我的項目,包含所有這些功能的鏈接。我建議對它進行研究,任何事情都會寄給我一封電子郵件或其他東西來回答你的問題。

這裏:enter link description here

檢查太/ DEPS/cmake的文件夾以查看由我們創造的功能。

相關問題