【问题标题】:Can CMake Generate Theos Makefiles?CMake 可以生成 Theos Makefile 吗?
【发布时间】:2014-05-24 16:05:42
【问题描述】:

我使用Theos 创建了一个iOS 项目。它的Makefile format 非常简单——基本上只是源文件和库/框架的列表。我需要 CMake 做的就是更新这个文件中的源列表和库。 CMake 可以做到这一点吗?

这是我当前的 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 只是将它的源列表转储到一个文本文件中就可以了,然后我会使用其他一些自动化工具/脚本从那里编辑它。

【问题讨论】:

    标签: ios makefile cmake theos


    【解决方案1】:

    我能够让 CMake 使用 FILE(WRITE) 命令生成 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)
    

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 2012-02-11
      • 2014-08-16
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      相关资源
      最近更新 更多