2014-04-10 66 views
1

我使用Theos創建了一個iOS項目。它的Makefile format非常簡單 - 基本上只是源文件和庫/框架的列表。我需要CMake來做的是更新這個文件中的源列表和庫。 CMake能做到這一點嗎?CMake可以生成Theos Makefiles嗎?

這是我目前的Makefile:

ARCHS=armv6 
include $(THEOS_MAKE_PATH)/common.mk 

APPLICATION_NAME = TestApp 
TestApp_FILES = main.m gltest.cpp testAppDelegate.m ES1Renderer.m EAGLView.m 
TestApp_FRAMEWORKS = UIKit CoreGraphics OpenGLES QuartzCore 

include $(THEOS_MAKE_PATH)/application.mk 

在我看來,這CMake的不能產生任何不屬於標準的Unix Makefile文件,IDE項目,等等。我有我需要的感覺編寫我自己的定製CMake工具鏈文件來完成Theos爲我所做的一切。

如果CMake只是將其源文件列表轉儲到文本文件中,然後使用其他自動化工具/腳本從那裏編輯它,那將是可以的。

回答

0

我能得到CMake的使用FILE(寫)產生的Makefile命令:

file(WRITE ${MAKE_FILE} 
    "ARCHS=" ${ARCHS} "\n" 
    "APPLICATION_NAME = " ${PROJECT_NAME} "\n" 
    ${PROJECT_NAME} "_FILES = " ${IOS_SOURCES} "\n" 
    ${PROJECT_NAME} "_FRAMEWORKS = " ${FRAMEWORK_DEPS} "\n\n" 
    "include ${THEOS_PATH}/makefiles/common.mk\n" 
    "include ${THEOS_PATH}/makefiles/application.mk" 
    ) 

使CMake的沒有花時間在我的系統配置的編譯器我也做了一個空的工具鏈。

set (CMAKE_SYSTEM_NAME Generic) 

# Just point to anything that exists. 
# We don't need CMake to generate proper build files. 
set(CMAKE_C_COMPILER ${CMAKE_CURRENT_SOURCE_DIR}) 
set(CMAKE_CXX_COMPILER ${CMAKE_CURRENT_SOURCE_DIR}) 

# Skip the platform compiler checks 
set (CMAKE_CXX_COMPILER_WORKS TRUE) 
set (CMAKE_C_COMPILER_WORKS TRUE)