cmake_minimum_required (VERSION 3.0)
cmake_policy(VERSION 3.0)
set(OGRE_HOME ${CMAKE_SOURCE_DIR}/ogre)
# Set Project Name
set(ProjName "OgreTemplateProject")
project(${ProjName})
# Set Install Directory
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/install_dir")
set(INSTALL_DIR "${CMAKE_BINARY_DIR}/install_dir")
# Create Library
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
file(GLOB_RECURSE LIBS "ogre/*.lib")
file(COPY ${LIBS} DESTINATION ${CMAKE_SOURCE_DIR}/lib)
link_directories(${CMAKE_SOURCE_DIR}/lib)
# Copy Ogre Library
add_custom_target(copy_files ALL
VERBATIM
# COMMAND_EXPAND_LISTS
COMMAND ${CMAKE_COMMAND} -E
copy_directory
"${OGRE_HOME}"
"${INSTALL_DIR}"
)
# Install
file(GLOB_RECURSE SOURCE
"${ProjName}/*.cpp"
"${ProjName}/*.c"
)
add_executable(${ProjName} ${SOURCE})
target_link_libraries(${ProjName} ${LIBS})
install(TARGETS ${ProjName} DESTINATION "${INSTALL_DIR}/bin")
# Add Include Directories
file (GLOB PROJECT_HEADERS "${CMAKE_SOURCE_DIR}/${ProjName}/include")
FILE(GLOB_RECURSE new_list "ogre/*.h")
SET(dir_list "")
FOREACH(file_path ${new_list})
GET_FILENAME_COMPONENT(dir_path ${file_path} PATH)
SET(dir_list ${dir_list} ${dir_path})
ENDFOREACH()
LIST(REMOVE_DUPLICATES dir_list)
SET(OGRE_HEADERS ${dir_list})
target_include_directories(${ProjName} PUBLIC
"${PROJECT_HEADERS}"
"${OGRE_HEADERS}")
OGRE MSVC SDK Cmake Template
最新推荐文章于 2024-08-31 08:25:22 发布