有一段时间没写日志了,都有点不知道怎么开始了,汗!
Ogre v1.7.0出来了,暂时只提供原代码,同时代码管理上也转向使用CMake了(OpenCV2.0也转到用CMake)。 Ogre官方提供了一个CMakefile ,但没有说明清楚,试了下,不Work,所以自己去CMake官方查了下DOC,修改成自己想要的。刚学CMake,可能写的不好,所以没提交到Ogre官方Wiki,就拿出来分享下好了。如有什么问题和建议欢迎跟帖~
说明:
- 可能只适用了Ogre v1.7版本
- 需要先设置四个环境变量,供FindOGRE.cmake 文件查找Ogre用,下面是我的
OGRE_BUILD - D:\libs\Ogre\v1-7-0RC1\build
OGRE_HOME - %LIBS_DIR%\Ogre\v1-7-0RC1
OGRE_SOURCE - D:\libs\Ogre\v1-7-0RC1
OIS_HOME - D:\libs\Ogre\v1-7-0RC1\Dependencies\src\ois-1.2.0
- 下面是查找Ogre用的CMake文件,存放位置下面CMAKE_MODULE_PATH处设置
FindOGRE.cmake
FindOIS.cmake
FindPkgMacros.cmake
OgreConfigTargets.cmake
OgreFindFrameworks.cmake
OgreGetVersion.cmake
PreprocessorUtils.cmake
VisualStudioUserFile.vcproj.user.in # 需要修改,见下文
代码目录如下:
CMakeLists.txt
include/
*.h
src/
*.cpp
CMakeLists.txt文件
cmake_minimum_required(VERSION 2.6)
SET(PROJ_NAME Ogre_Project) # 工程名
PROJECT(${PROJ_NAME})
set(CMAKE_MODULE_PATH
$ENV{OGRE_BUILD}/sdk/CMake # Ogre cmake 路径
)
include(OgreConfigTargets)
FIND_PACKAGE(OpenGL)
FIND_PACKAGE(OGRE)
FIND_PACKAGE(OIS)
INCLUDE_DIRECTORIES(
${OpenGL_INCLUDE_DIR}
${OGRE_INCLUDE_DIRS}
${OIS_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/include
$ENV{OGRE_BUILD}/include
$ENV{OGRE_HOME}/Dependencies/include
$ENV{OGRE_HOME}/Samples/Common/include # source version
)
LINK_DIRECTORIES(
${OGRE_LIBRARIES}
)
FILE(GLOB SRCS src/*.cpp)
FILE(GLOB HDRS include/*.h)
ADD_EXECUTABLE(${PROJ_NAME}
WIN32 # SUBSYSTEM:WINDOWS
${SRCS}
${HDRS}
)
TARGET_LINK_LIBRARIES(${PROJ_NAME}
${OpenGL_LIBRARIES}
${OIS_LIBRARIES}
${OGRE_LIBRARIES}
)
set(OGRE_TEMPLATES_DIR"${CMAKE_MODULE_PATH}")
set(OGRE_WORK_DIR"$ENV{OGRE_BUILD}")
set(OGRE_BINARY_DIR"$ENV{OGRE_BUILD}")
#FIND_FILE( OLD_VCPROJ_USER_FILES
#*.user
#${CMAKE_CURRENT_BINARY_DIR}
#)
if (MSVC)
FILE( REMOVE ${PROJ_NAME}.vcproj.$ENV{USERDOMAIN}.$ENV{USERNAME}.user)
ogre_create_vcproj_userfile( ${PROJ_NAME} )
endif ()
修改VisualStudioUserFile.vcproj.user.in
生成vcproj.user文件的模板也要修改下,修改
Command="@OGRE_BINARY_DIR@/bin/$(ConfigurationName)/$(TargetFileName)"
为
Command=""
然后你只要用cmake-gui工具 configure generate 下就可以得到配置好的Ogre工程了。
PREVIOUS基于BillBoard的云绘制
NEXT终于写好Z Buffer作业了