Cmake 脚本对项目输出路径和输出头文件的路径定义
2014-01-10 17:47
411 查看
对Lib项目的统一输出路径以下时解决方案:
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Bin)
以上三行命令要写在根(root)CmakeLists.txt的里面.
Reference:
http://stackoverflow.com/questions/3702115/creating-a-directory-in-cmake
http://stackoverflow.com/questions/3742090/custom-directory-for-cmake-library-output
http://stackoverflow.com/questions/17653738/recursive-cmake-search-for-header-and-source-files
http://stackoverflow.com/questions/6594796/how-do-i-make-cmake-output-into-a-bin-dir
项目依赖的头文件的输出路径:
References:
http://stackoverflow.com/questions/5668397/cmake-export-third-party-headers-to-directory
http://stackoverflow.com/questions/697560/how-to-copy-directory-from-source-tree-to-binary-tree
http://stackoverflow.com/questions/10487256/cmake-how-to-properly-copy-static-librarys-header-file-into-usr-include
以下是(root)CmakeLists.txt的代码:
View Code
TIPS:add_subdirectory命令执行中,就直接执行子目录下的CmakeLists.txt里面的代码了
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Bin)
以上三行命令要写在根(root)CmakeLists.txt的里面.
Reference:
http://stackoverflow.com/questions/3702115/creating-a-directory-in-cmake
http://stackoverflow.com/questions/3742090/custom-directory-for-cmake-library-output
http://stackoverflow.com/questions/17653738/recursive-cmake-search-for-header-and-source-files
http://stackoverflow.com/questions/6594796/how-do-i-make-cmake-output-into-a-bin-dir
项目依赖的头文件的输出路径:
References:
http://stackoverflow.com/questions/5668397/cmake-export-third-party-headers-to-directory
http://stackoverflow.com/questions/697560/how-to-copy-directory-from-source-tree-to-binary-tree
http://stackoverflow.com/questions/10487256/cmake-how-to-properly-copy-static-librarys-header-file-into-usr-include
以下是(root)CmakeLists.txt的代码:
cmake_minimum_required(VERSION 2.8) #set(CMAKE_C_COMPILER "D:\VS2008Release\VC\bin\amd64") #set(CMAKE_CXX_COMPILER "D:\VS2008Release\VC\bin\amd64") PROJECT(ImageMagick) #set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib) #set(ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Lib") #message(STATUS ${CMAKE_BINARY_DIR}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Bin) #set(SHARE_LIBS_DIR ${CMAKE_BINARY_DIR}/Lib) add_subdirectory(bzlib) add_subdirectory(cairo) add_subdirectory(coders) add_subdirectory(croco) add_subdirectory(ffi) add_subdirectory(filters) add_subdirectory(glib) add_subdirectory(jbig) add_subdirectory(jp2) add_subdirectory(jpeg) add_subdirectory(lcms) add_subdirectory(librsvg) add_subdirectory(libxml) add_subdirectory(lqr) add_subdirectory(magick) add_subdirectory(Magick++) add_subdirectory(pango) add_subdirectory(pixman) add_subdirectory(png) add_subdirectory(tiff) add_subdirectory(ttf) add_subdirectory(wand) add_subdirectory(webp) add_subdirectory(wmf) add_subdirectory(zlib) #头文件输出 file(COPY "${CMAKE_BINARY_DIR}/Magick++/lib/Magick++.h" DESTINATION "${CMAKE_BINARY_DIR}/include" ) #wand文件夹 file(GLOB wand_hdrs "${CMAKE_BINARY_DIR}/wand/*.h") file(COPY ${wand_hdrs} DESTINATION "${CMAKE_BINARY_DIR}/include/wand" ) file(COPY "${CMAKE_BINARY_DIR}/VisualMagick/wand/wand-config.h.in" DESTINATION "${CMAKE_BINARY_DIR}/include/wand" ) #文件重命名 file(RENAME "${CMAKE_BINARY_DIR}/include/wand/wand-config.h.in" "${CMAKE_BINARY_DIR}/include/wand/wand-config.h") #Magick++文件夹 file(GLOB Magick_hdrs "${CMAKE_BINARY_DIR}/Magick++/lib/Magick++/*.h") file(COPY ${Magick_hdrs} DESTINATION "${CMAKE_BINARY_DIR}/include/Magick++" ) #magick文件夹 file(GLOB magick_hdrs "${CMAKE_BINARY_DIR}/magick/*.h") file(COPY ${magick_hdrs} DESTINATION "${CMAKE_BINARY_DIR}/include/magick" ) #wand #add_subdirectory(cairo)
View Code
TIPS:add_subdirectory命令执行中,就直接执行子目录下的CmakeLists.txt里面的代码了
相关文章推荐
- Cmake 脚本对项目输出路径和输出头文件的路径定义
- MyEclipse编译后,classes文件夹下为空2. 3.删除现在的项目,提前设置好编译文件输出路径,重新导入源文件,设置eclipse为保存时编译,然后在保存的时候就可以自动编译了
- 修改myeclipse下maven项目的文件编译输出路径
- 添加文件【COCOS2DX-LUA 脚本开发之十三】解决lua项目编译Android出现get data from file failed、Cocos2dxActivity cannot be 路径等问题
- bash脚本筛选出根目录下所有ELF文件,并将路径输出
- [Unix/Linux] catsrc.sh: 此脚本用于在写报告时把项目的多个源代码文件方便的 `cat` 到一个文件上, 并把来自不同的文件之间加上一个标识头以区分输出文件里的不同文件
- 定义External Tool复制当前项目的输出文件到发布位置
- linux shell脚本 springboot项目发布的shell脚本 包括日志输出到指定的文件
- C#项目,改变文件的输出路径,查看C#项目的版本号,修改版本号的规则
- Android Studio NDK CMake 指定so输出路径以及生成多个so的案例与总结 # 设置so文件生成路径 # set(CMAKE_LIBRARY_OUTPUT_DIRECTORY $
- 通过配置tomcat的service文件来自定义项目浏览路径
- 在linux系统中将自己程序的日志输出到自己定义的文件
- Android Studio NDK CMake 指定so输出路径以及生成多个so的案例与总结
- c#打开对话框选择后输出文件路径文件名
- 请问怎样书写SQL脚本,以判断某个路径下的某个文件是否存在?
- 移动项目开发笔记(总结MasterPage中的资源文件引用路径)
- JS魔法堂:获取当前脚本文件的绝对路径
- 记录linux设置定时执行python脚本以及输出到指定文件
- Myeclipse更新整个项目后,有时java或jsp文件,会提示错误,找不到类路径等问题。
- ASP.NET Core MVC压缩样式、脚本及总是复制文件到输出目录