cmake学习
2015-08-23 10:39
225 查看
cmake指令
1. include
加载cmakelists.txt文件,也可以载入预定义的cmake模块
INCLUDE(GNUInstallDirs)
2.configure_file
# setup version numbers
# TODO: Update these for each release!
set(VERSION_MAJOR 3)
set(VERSION_MINOR 0)
set(VERSION_PATCH 0)
# Update fg_version.h to match the versions number here in cmake
CONFIGURE_FILE(src/fg_version.h.in src/fg_version.h)
将文件拷贝至另一位置并修改其内容
http://www.cnblogs.com/coderfenghc/archive/2012/07/04/2576862.html
3.option
设置变量默认初始值,并且作为定义值的候选。
# FREEGLUT_BUILD_SHARED_LIBS is already a standard CMake variable, but we need to
# re-declare it here so it will show up in the GUI.
# by default, we want to build both
OPTION(FREEGLUT_BUILD_SHARED_LIBS "Build FreeGLUT shared library." ON)
OPTION(FREEGLUT_BUILD_STATIC_LIBS "Build FreeGLUT static library." ON)
4.Set
设置自定义变量
SET(FREEGLUT_HEADERS
include/GL/freeglut.h
include/GL/freeglut_ext.h
include/GL/freeglut_std.h
include/GL/glut.h
)
SET(FREEGLUT_SRCS
${FREEGLUT_HEADERS}
src/fg_callbacks.c
src/fg_cursor.c
src/fg_display.c
src/fg_ext.c
src/fg_font_data.c
src/fg_gamemode.c
src/fg_geometry.c
src/fg_gl2.c
src/fg_gl2.h
src/fg_init.c
src/fg_init.h
src/fg_internal.h
src/fg_input_devices.c
src/fg_joystick.c
src/fg_main.c
src/fg_misc.c
src/fg_overlay.c
src/fg_spaceball.c
src/fg_state.c
src/fg_stroke_mono_roman.c
src/fg_stroke_roman.c
src/fg_structure.c
src/fg_teapot.c
src/fg_teapot_data.h
src/fg_videoresize.c
src/fg_window.c
)
5.list
list提供对列表的操作,可参考http://blog.csdn.net/fuyajun01/article/details/9036477
IF(NOT FREEGLUT_GLES)
LIST(APPEND FREEGLUT_SRCS
src/fg_font.c
src/fg_menu.c
)
ELSE()
LIST(APPEND FREEGLUT_SRCS
src/gles_stubs.c
)
append 添加新文件至链表中
6.add_definitions
add_definitions添加编译参数、开关
add_definitions(-DDEBUG) 添加DEBUG宏定义
7.find_package
http://www.cnblogs.com/coderfenghc/archive/2012/07/15/2592758.html
8.add_library
指定源文件生成库文件:静态、动态
IF(FREEGLUT_BUILD_SHARED_LIBS)
ADD_LIBRARY(freeglut SHARED ${FREEGLUT_SRCS})
ENDIF()
IF(FREEGLUT_BUILD_STATIC_LIBS)
ADD_LIBRARY(freeglut_static STATIC ${FREEGLUT_SRCS})
ENDIF()
9.win32
并不是指windows 32位操作系统,统指windows操作系统,含64位
IF(WIN32)
LIST(APPEND LIBS winmm)
IF(FREEGLUT_BUILD_SHARED_LIBS)
SET_TARGET_PROPERTIES(freeglut PROPERTIES COMPILE_FLAGS -DFREEGLUT_EXPORTS)
ENDIF()
IF(FREEGLUT_BUILD_STATIC_LIBS)
SET_TARGET_PROPERTIES(freeglut_static PROPERTIES COMPILE_FLAGS -DFREEGLUT_STATIC)
# need to set machine:x64 for linker, at least for VC10, and
# doesn't hurt for older compilers:
# http://public.kitware.com/Bug/view.php?id=11240#c22768
IF (CMAKE_CL_64)
SET_TARGET_PROPERTIES(freeglut_static PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
ENDIF()
ENDIF()
10.CMAKE_CL_64
定义windows 64位平台
IF(CMAKE_CL_64)
SET(PLATFORM x64)
ELSE(CMAKE_CL_64)
SET(PLATFORM x86)
ENDIF(CMAKE_CL_64)
11.set_target_properties
设置目标属性,改变其架构方式
http://www.cnblogs.com/coderfenghc/archive/2012/10/20/2712806.html
12.install
IF(FREEGLUT_BUILD_SHARED_LIBS)
INSTALL(TARGETS freeglut
RUNTIME DESTINATION bin
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
IF(INSTALL_PDB)
INSTALL(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Debug/freeglut${CMAKE_DEBUG_POSTFIX}.pdb
DESTINATION bin
CONFIGURATIONS Debug)
ENDIF()
ENDIF()
http://www.cnblogs.com/coderfenghc/archive/2012/08/12/2627561.html
1. include
加载cmakelists.txt文件,也可以载入预定义的cmake模块
INCLUDE(GNUInstallDirs)
2.configure_file
# setup version numbers
# TODO: Update these for each release!
set(VERSION_MAJOR 3)
set(VERSION_MINOR 0)
set(VERSION_PATCH 0)
# Update fg_version.h to match the versions number here in cmake
CONFIGURE_FILE(src/fg_version.h.in src/fg_version.h)
将文件拷贝至另一位置并修改其内容
http://www.cnblogs.com/coderfenghc/archive/2012/07/04/2576862.html
3.option
设置变量默认初始值,并且作为定义值的候选。
# option to also copy .pdb files to install directory when executing # INSTALL target IF(MSVC) OPTION(INSTALL_PDB "Also install .pdb files" ON) ELSE() SET(INSTALL_PDB OFF) ENDIF()
# FREEGLUT_BUILD_SHARED_LIBS is already a standard CMake variable, but we need to
# re-declare it here so it will show up in the GUI.
# by default, we want to build both
OPTION(FREEGLUT_BUILD_SHARED_LIBS "Build FreeGLUT shared library." ON)
OPTION(FREEGLUT_BUILD_STATIC_LIBS "Build FreeGLUT static library." ON)
4.Set
设置自定义变量
SET(FREEGLUT_HEADERS
include/GL/freeglut.h
include/GL/freeglut_ext.h
include/GL/freeglut_std.h
include/GL/glut.h
)
SET(FREEGLUT_SRCS
${FREEGLUT_HEADERS}
src/fg_callbacks.c
src/fg_cursor.c
src/fg_display.c
src/fg_ext.c
src/fg_font_data.c
src/fg_gamemode.c
src/fg_geometry.c
src/fg_gl2.c
src/fg_gl2.h
src/fg_init.c
src/fg_init.h
src/fg_internal.h
src/fg_input_devices.c
src/fg_joystick.c
src/fg_main.c
src/fg_misc.c
src/fg_overlay.c
src/fg_spaceball.c
src/fg_state.c
src/fg_stroke_mono_roman.c
src/fg_stroke_roman.c
src/fg_structure.c
src/fg_teapot.c
src/fg_teapot_data.h
src/fg_videoresize.c
src/fg_window.c
)
5.list
list提供对列表的操作,可参考http://blog.csdn.net/fuyajun01/article/details/9036477
IF(NOT FREEGLUT_GLES)
LIST(APPEND FREEGLUT_SRCS
src/fg_font.c
src/fg_menu.c
)
ELSE()
LIST(APPEND FREEGLUT_SRCS
src/gles_stubs.c
)
append 添加新文件至链表中
6.add_definitions
add_definitions添加编译参数、开关
add_definitions(-DDEBUG) 添加DEBUG宏定义
7.find_package
http://www.cnblogs.com/coderfenghc/archive/2012/07/15/2592758.html
8.add_library
指定源文件生成库文件:静态、动态
IF(FREEGLUT_BUILD_SHARED_LIBS)
ADD_LIBRARY(freeglut SHARED ${FREEGLUT_SRCS})
ENDIF()
IF(FREEGLUT_BUILD_STATIC_LIBS)
ADD_LIBRARY(freeglut_static STATIC ${FREEGLUT_SRCS})
ENDIF()
9.win32
并不是指windows 32位操作系统,统指windows操作系统,含64位
IF(WIN32)
LIST(APPEND LIBS winmm)
IF(FREEGLUT_BUILD_SHARED_LIBS)
SET_TARGET_PROPERTIES(freeglut PROPERTIES COMPILE_FLAGS -DFREEGLUT_EXPORTS)
ENDIF()
IF(FREEGLUT_BUILD_STATIC_LIBS)
SET_TARGET_PROPERTIES(freeglut_static PROPERTIES COMPILE_FLAGS -DFREEGLUT_STATIC)
# need to set machine:x64 for linker, at least for VC10, and
# doesn't hurt for older compilers:
# http://public.kitware.com/Bug/view.php?id=11240#c22768
IF (CMAKE_CL_64)
SET_TARGET_PROPERTIES(freeglut_static PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
ENDIF()
ENDIF()
10.CMAKE_CL_64
定义windows 64位平台
IF(CMAKE_CL_64)
SET(PLATFORM x64)
ELSE(CMAKE_CL_64)
SET(PLATFORM x86)
ENDIF(CMAKE_CL_64)
11.set_target_properties
设置目标属性,改变其架构方式
http://www.cnblogs.com/coderfenghc/archive/2012/10/20/2712806.html
12.install
IF(FREEGLUT_BUILD_SHARED_LIBS)
INSTALL(TARGETS freeglut
RUNTIME DESTINATION bin
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
IF(INSTALL_PDB)
INSTALL(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Debug/freeglut${CMAKE_DEBUG_POSTFIX}.pdb
DESTINATION bin
CONFIGURATIONS Debug)
ENDIF()
ENDIF()
http://www.cnblogs.com/coderfenghc/archive/2012/08/12/2627561.html
相关文章推荐
- cmake clion 构建cocos2dx 应用程序并编译ios mac android
- OpenCV配置,从来没有这么简单!
- MySQL CMake参数说明手册
- CMake 使用方法
- 用 cmake 构建Qt工程(对比qmake进行学习)
- CMake 手册详解(一)
- 一起学习CMake – 01
- MySQL 安装 CMake Error CMAKE_CXX_COMPILER not set
- MySQL5.5安装出现CMake错误找不到CMakelists.txt原因
- 在vc6中使用PCRE-8.33
- 在Qtcreator下cmake工程文件及使用Qt制作PCL C++ GUI
- [VS2013+Win7]GLEW库配置问题 error LNK2019: 无法解析的外部符号 _gluGetString@4
- CMake生成VS2012 ARM project遇到的问题
- vs2013下openSIFT的编译调试
- 使用yum 使用 CentOS-6.5-x86_64-bin-DVD1.iso 作为本地源
- 安装Geant4的过程中学到的一些东西
- Linux下opencv的交叉编译
- mysql-5.5安装
- mysql-5.5安装
- linux5.6下mysql数据库安装