cmake_minimum_required (VERSION 3.0)
cmake_policy(VERSION 3.0)
set(OGRE_HOME ${CMAKE_SOURCE_DIR}/ogre)
# Set Project Name
set(ProjName "splatStatic")
project(${ProjName})
set(PluginName "SplatStaticPlugin")
set(ExeName "SplatStaticBrowser")
# Set Install Directory
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/install_dir")
set(INSTALL_DIR "${CMAKE_BINARY_DIR}/install_dir")
# Create Library
file(GLOB_RECURSE LIBS "ogre/*.lib")
FOREACH(file_path ${new_list})
GET_FILENAME_COMPONENT(dir_path ${file_path} PATH)
link_directories("${dir_path}")
ENDFOREACH()
# Copy Directories
execute_process(
COMMAND ${CMAKE_COMMAND} -E
copy_directory
"${CMAKE_SOURCE_DIR}/${ProjName}/Media"
"${INSTALL_DIR}/Media"
COMMAND ${CMAKE_COMMAND} -E
copy_directory
"${OGRE_HOME}"
"${INSTALL_DIR}"
)
# 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})
# Install DLL
add_library(${PluginName} SHARED "${ProjName}/${PluginName}.cpp")
target_link_libraries(${PluginName} ${LIBS})
target_include_directories(${PluginName} PUBLIC
"${PROJECT_HEADERS}"
"${OGRE_HEADERS}")
install(TARGETS ${PluginName} DESTINATION "${INSTALL_DIR}/bin")
# Install Executable
add_executable(${ExeName} "${ProjName}/${ExeName}.cpp")
target_link_libraries(${ExeName} PRIVATE
${LIBS}
${PluginName})
target_include_directories(${ExeName} PUBLIC
"${PROJECT_HEADERS}"
"${OGRE_HEADERS}")
install(TARGETS ${ExeName} DESTINATION "${INSTALL_DIR}/bin")
ogre template 2
于 2025-01-14 00:56:53 首次发布