413 lines
17 KiB
CMake
413 lines
17 KiB
CMake
cmake_minimum_required(VERSION 3.13.0)
|
|
project(world2)
|
|
|
|
set(CMAKE_CXX_STANDARD 14)
|
|
set(BLENDER "${CMAKE_SOURCE_DIR}/../../blender-bin/bin/blender" CACHE STRING "Blender path")
|
|
set(CREATE_DIRECTORIES
|
|
${CMAKE_BINARY_DIR}/assets/blender/shapes/male
|
|
${CMAKE_BINARY_DIR}/assets/blender/shapes/female
|
|
${CMAKE_BINARY_DIR}/assets/blender/scripts
|
|
${CMAKE_BINARY_DIR}/characters/shapes/male/chibi
|
|
${CMAKE_BINARY_DIR}/characters/shapes/female/chibi
|
|
${CMAKE_BINARY_DIR}/characters/male
|
|
${CMAKE_BINARY_DIR}/characters/female)
|
|
#set(CREATE_SCENES
|
|
# ${CMAKE_SOURCE_DIR}/characters/female/vroid-normal-female.scene
|
|
# ${CMAKE_SOURCE_DIR}/characters/male/vroid-normal-male.scene
|
|
# )
|
|
|
|
# workaround horribly broken assimp cmake, fixed with assimp 5.1
|
|
#add_library(assimp INTERFACE IMPORTED)
|
|
#set_target_properties(assimp PROPERTIES
|
|
# INTERFACE_LINK_LIBRARIES "assimp;pugixml"
|
|
# # INTERFACE_LINK_DIRECTORIES "${ASSIMP_LIBRARY_DIRS}"
|
|
# INTERFACE_LINK_DIRECTORIES "${CMAKE_PREFIX_PATH}/lib"
|
|
#)
|
|
file(GLOB WATER_SRC ${CMAKE_SOURCE_DIR}/water/*.cpp)
|
|
|
|
# The COMPONENTS part checks that OGRE was built the way we need it
|
|
# The CONFIG flag makes sure we get OGRE instead of OGRE-next
|
|
find_package(OGRE REQUIRED COMPONENTS Bites Bullet Paging Terrain CONFIG)
|
|
find_package(ZLIB)
|
|
find_package(SDL2)
|
|
find_package(assimp REQUIRED CONFIG)
|
|
find_package(Bullet)
|
|
find_package(OgreProcedural REQUIRED CONFIG)
|
|
find_package(pugixml REQUIRED CONFIG)
|
|
find_package(flecs REQUIRED CONFIG)
|
|
|
|
add_library(fix::assimp INTERFACE IMPORTED)
|
|
set_target_properties(fix::assimp PROPERTIES
|
|
INTERFACE_LINK_LIBRARIES "${ASSIMP_LIBRARIES};pugixml"
|
|
INTERFACE_LINK_DIRECTORIES "${ASSIMP_LIBRARY_DIRS}"
|
|
# INTERFACE_LINK_DIRECTORIES "${CMAKE_PREFIX_PATH}/lib"
|
|
)
|
|
|
|
add_library(fix::OgreProcedural INTERFACE IMPORTED)
|
|
set_target_properties(fix::OgreProcedural PROPERTIES
|
|
INTERFACE_LINK_LIBRARIES "OgreProcedural"
|
|
INTERFACE_LINK_DIRECTORIES "${CMAKE_PREFIX_PATH}/lib"
|
|
)
|
|
|
|
if(OGRE_STATIC)
|
|
add_library(OgreGLSupportStatic INTERFACE IMPORTED)
|
|
set_target_properties(OgreGLSupportStatic PROPERTIES
|
|
INTERFACE_LINK_LIBRARIES "OgreGLSupportStatic"
|
|
INTERFACE_LINK_DIRECTORIES "${CMAKE_PREFIX_PATH}/lib"
|
|
)
|
|
endif()
|
|
|
|
add_library(fix::pugixml INTERFACE IMPORTED)
|
|
set_target_properties(fix::pugixml PROPERTIES
|
|
INTERFACE_LINK_LIBRARIES "pugixml"
|
|
INTERFACE_LINK_DIRECTORIES "${CMAKE_PREFIX_PATH}/lib"
|
|
)
|
|
|
|
|
|
|
|
add_subdirectory(src/lua)
|
|
add_subdirectory(src/characters)
|
|
add_subdirectory(src/gamedata)
|
|
add_subdirectory(src/miniaudio)
|
|
add_subdirectory(src/sound)
|
|
add_subdirectory(src/sceneloader)
|
|
add_subdirectory(audio/gui)
|
|
add_subdirectory(tests)
|
|
add_subdirectory(lua-scripts)
|
|
add_subdirectory(morph)
|
|
add_subdirectory(src/world)
|
|
add_subdirectory(src/tests)
|
|
|
|
# add the source files as usual
|
|
add_executable(0_Bootstrap Bootstrap.cpp)
|
|
|
|
# this also sets the includes and pulls third party dependencies
|
|
target_link_libraries(0_Bootstrap OgreBites OgreBullet OgrePaging ${BULLET_DYNAMICS_LIBRARY} ${BULLET_COLLISION_LIBRARY} ${BULLET_MATH_LIBRARY} ${ASSIMP_LIBRARIES}
|
|
-Wl,--as-needed
|
|
)
|
|
if(OGRE_STATIC)
|
|
target_link_options(0_Bootstrap PRIVATE -static-libstdc++ -static-libgcc)
|
|
endif()
|
|
add_dependencies(0_Bootstrap stage_files import_vrm)
|
|
|
|
add_executable(Editor Editor.cpp ${WATER_SRC})
|
|
target_link_libraries(Editor OgreBites OgreBullet OgrePaging OgreTerrain OgreMeshLodGenerator OgreProcedural::OgreProcedural ${BULLET_DYNAMICS_LIBRARY} ${BULLET_COLLISION_LIBRARY} ${BULLET_MATH_LIBRARY}
|
|
-Wl,--as-needed
|
|
)
|
|
if(OGRE_STATIC)
|
|
target_link_options(Editor PRIVATE -static-libstdc++ -static-libgcc)
|
|
endif()
|
|
add_dependencies(Editor stage_files import_buildings import_water_stuff import_vehicles import_vrm)
|
|
add_executable(Game Game.cpp ${WATER_SRC})
|
|
target_include_directories(Game PRIVATE src/gamedata)
|
|
target_link_libraries(Game OgreBites OgreBullet OgrePaging OgreTerrain OgreMeshLodGenerator
|
|
OgreProcedural::OgreProcedural ${BULLET_DYNAMICS_LIBRARY}
|
|
${BULLET_COLLISION_LIBRARY} ${BULLET_MATH_LIBRARY}
|
|
GameData
|
|
sound
|
|
sceneloader
|
|
flecs::flecs_static
|
|
-Wl,--as-needed
|
|
)
|
|
if(OGRE_STATIC)
|
|
target_link_options(Game PRIVATE -static-libstdc++ -static-libgcc)
|
|
endif()
|
|
add_dependencies(Game stage_files import_buildings import_water_stuff import_vehicles import_vrm audio_data_gui)
|
|
|
|
add_executable(Procedural Procedural.cpp)
|
|
target_link_libraries(Procedural OgreBites OgreBullet OgrePaging OgreTerrain
|
|
OgreProcedural::OgreProcedural ${BULLET_DYNAMICS_LIBRARY}
|
|
${BULLET_COLLISION_LIBRARY} ${BULLET_MATH_LIBRARY}
|
|
-Wl,--as-needed
|
|
)
|
|
if(OGRE_STATIC)
|
|
target_link_options(Procedural PRIVATE -static-libstdc++ -static-libgcc)
|
|
endif()
|
|
add_dependencies(Procedural stage_files import_buildings)
|
|
file(GLOB FONTS_SRC ${CMAKE_SOURCE_DIR}/assets/fonts/*.ttf)
|
|
set(FONT_OUTPUT_FILES)
|
|
foreach(FONT_FILE ${FONTS_SRC})
|
|
get_filename_component(FILE_NAME ${FONT_FILE} NAME_WE)
|
|
set(FONT_OUTPUT_FILE ${CMAKE_BINARY_DIR}/resources/fonts/${FILE_NAME}.ttf)
|
|
add_custom_command(
|
|
OUTPUT ${FONT_OUTPUT_FILE}
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/resources/fonts
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${FONT_FILE} ${FONT_OUTPUT_FILE}
|
|
DEPENDS ${FONT_FILE})
|
|
list(APPEND FONT_OUTPUT_FILES ${FONT_OUTPUT_FILE})
|
|
endforeach()
|
|
add_custom_target(fonts ALL DEPENDS ${FONT_OUTPUT_FILES})
|
|
file(GLOB BUILDINGS_SRC ${CMAKE_SOURCE_DIR}/assets/blender/buildings/*.blend)
|
|
set(BUILDING_OUTPUT_FILES)
|
|
foreach(BUILDING_FILE ${BUILDINGS_SRC})
|
|
get_filename_component(FILE_NAME ${BUILDING_FILE} NAME_WE)
|
|
set(BUILDING_OUTPUT_FILE ${CMAKE_BINARY_DIR}/resources/buildings/${FILE_NAME}.gltf)
|
|
add_custom_command(
|
|
OUTPUT ${BUILDING_OUTPUT_FILE}
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/resources/buildings
|
|
COMMAND ${BLENDER} ${BUILDING_FILE}
|
|
-b -Y -P
|
|
${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_buildings.py
|
|
-- ${BUILDING_OUTPUT_FILE}
|
|
COMMAND touch ${BUILDING_OUTPUT_FILE}
|
|
DEPENDS ${BUILDING_FILE})
|
|
list(APPEND BUILDING_OUTPUT_FILES ${BUILDING_OUTPUT_FILE})
|
|
endforeach()
|
|
|
|
add_custom_target(import_buildings ALL DEPENDS ${BUILDING_OUTPUT_FILES})
|
|
file(GLOB VEHICLES_SRC ${CMAKE_SOURCE_DIR}/assets/blender/vehicles/*.blend)
|
|
set(VEHICLE_OUTPUT_FILES)
|
|
foreach(VEHICLE_FILE ${VEHICLES_SRC})
|
|
get_filename_component(FILE_NAME ${VEHICLE_FILE} NAME_WE)
|
|
set(VEHICLE_OUTPUT_FILE ${CMAKE_BINARY_DIR}/resources/vehicles/${FILE_NAME}.glb)
|
|
add_custom_command(
|
|
OUTPUT ${VEHICLE_OUTPUT_FILE}
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/resources/vehicles
|
|
COMMAND ${BLENDER} ${VEHICLE_FILE}
|
|
-b -Y -P
|
|
${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_buildings.py
|
|
-- ${VEHICLE_OUTPUT_FILE}
|
|
COMMAND touch ${VEHICLE_OUTPUT_FILE}
|
|
DEPENDS ${VEHICLE_FILE})
|
|
list(APPEND VEHICLE_OUTPUT_FILES ${VEHICLE_OUTPUT_FILE})
|
|
endforeach()
|
|
add_custom_target(import_vehicles ALL DEPENDS ${VEHICLE_OUTPUT_FILES})
|
|
|
|
set(CHARACTER_SHAPES_SRC edited-normal-male-base.blend edited-shape-test-male.blend)
|
|
set(CHARACTER_SHAPES_OUTPUT_FILES)
|
|
foreach(CHARACTER_SHAPE_FILE ${CHARACTER_SHAPES_SRC})
|
|
get_filename_component(FILE_NAME ${CHARACTER_SHAPE_FILE} NAME_WE)
|
|
set(CHARACTER_SHAPE_OUTPUT_FILE ${CMAKE_BINARY_DIR}/characters/shapes/male/${FILE_NAME}/${FILE_NAME}.scene)
|
|
add_custom_command(
|
|
OUTPUT ${CHARACTER_SHAPE_OUTPUT_FILE}
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/assets/blender
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/characters/shapes/male/${FILE_NAME}
|
|
COMMAND ${BLENDER} ${CMAKE_SOURCE_DIR}/assets/blender/${CHARACTER_SHAPE_FILE}
|
|
-b -Y -P
|
|
${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_characters_ogre.py
|
|
-- ${CHARACTER_SHAPE_OUTPUT_FILE}
|
|
COMMAND touch ${CHARACTER_SHAPE_OUTPUT_FILE}
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/${CHARACTER_SHAPE_FILE})
|
|
list(APPEND CHARACTER_SHAPES_OUTPUT_FILES ${CHARACTER_SHAPE_OUTPUT_FILE})
|
|
endforeach()
|
|
add_custom_target(import_character_shapes ALL DEPENDS ${CHARACTER_SHAPES_OUTPUT_FILES})
|
|
|
|
set(WATER_STUFF)
|
|
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/water/sea.glb
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/water
|
|
COMMAND ${BLENDER} ${CMAKE_SOURCE_DIR}/assets/blender/sea.blend
|
|
-b -Y -P
|
|
${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_buildings.py
|
|
-- ${CMAKE_BINARY_DIR}/water/sea.glb
|
|
COMMAND touch ${CMAKE_BINARY_DIR}/water/sea.glb
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/sea.blend)
|
|
list(APPEND WATER_STUFF ${CMAKE_BINARY_DIR}/water/sea.glb)
|
|
add_custom_target(import_water_stuff ALL DEPENDS ${WATER_STUFF})
|
|
|
|
add_executable(TerrainTest terrain.cpp)
|
|
target_link_libraries(TerrainTest OgreBites OgreBullet OgrePaging OgreTerrain lua ${BULLET_DYNAMICS_LIBRARY} ${BULLET_COLLISION_LIBRARY} ${BULLET_MATH_LIBRARY}
|
|
-Wl,--as-needed
|
|
)
|
|
target_include_directories(TerrainTest PRIVATE . src/terrain src/lua src/lua/lua-5.4.8/src)
|
|
if(OGRE_STATIC)
|
|
target_link_libraries(TerrainTest fix::assimp pugixml)
|
|
target_link_options(TerrainTest PRIVATE -static-libstdc++ -static-libgcc)
|
|
target_link_libraries(Procedural fix::assimp pugixml)
|
|
target_link_libraries(0_Bootstrap fix::assimp pugixml)
|
|
target_link_libraries(Editor fix::assimp pugixml)
|
|
endif()
|
|
|
|
add_dependencies(TerrainTest stage_lua_scripts stage_files)
|
|
|
|
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/stories
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/lua-scripts/stories ${CMAKE_BINARY_DIR}/stories
|
|
DEPENDS ${CMAKE_BINARY_DIR}/lua-scripts/stories
|
|
)
|
|
add_custom_target(stage_stories ALL DEPENDS stage_lua_scripts ${CMAKE_BINARY_DIR}/stories)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_BINARY_DIR}/resources.cfg
|
|
COMMAND cp ${CMAKE_SOURCE_DIR}/resources.cfg ${CMAKE_BINARY_DIR}/resources.cfg
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/resources/main
|
|
${CMAKE_BINARY_DIR}/resources/main
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/resources/shaderlib
|
|
${CMAKE_BINARY_DIR}/resources/shaderlib
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/resources/terrain
|
|
${CMAKE_BINARY_DIR}/resources/terrain
|
|
# COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/lua-scripts
|
|
# ${CMAKE_BINARY_DIR}/lua-scripts
|
|
# COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/skybox
|
|
# ${CMAKE_BINARY_DIR}/skybox
|
|
# COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/resources/debug
|
|
# ${CMAKE_BINARY_DIR}/resources/debug
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/resources.cfg)
|
|
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/resources/terrain/world_map.png
|
|
COMMAND unzip -o ${CMAKE_SOURCE_DIR}/world_map.kra mergedimage.png -d ${CMAKE_BINARY_DIR}/world_map
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_BINARY_DIR}/world_map/mergedimage.png
|
|
${CMAKE_BINARY_DIR}/resources/terrain/world_map.png
|
|
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/world_map
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/world_map.kra)
|
|
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/resources/terrain/brushes.png
|
|
COMMAND unzip -o ${CMAKE_SOURCE_DIR}/brushes.kra mergedimage.png -d ${CMAKE_BINARY_DIR}/brushes
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_BINARY_DIR}/brushes/mergedimage.png
|
|
${CMAKE_BINARY_DIR}/resources/terrain/brushes.png
|
|
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/brushes
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/brushes.kra)
|
|
|
|
set(SKYBOX_SRC
|
|
early_morning_bk.jpg
|
|
early_morning_dn.jpg
|
|
early_morning_fr.jpg
|
|
early_morning_lf.jpg
|
|
early_morning_rt.jpg
|
|
early_morning_up.jpg
|
|
skybox.material
|
|
)
|
|
set(DEBUG_MATERIAL_SRC
|
|
debug.frag
|
|
debug.material
|
|
debug.program
|
|
debug.vert
|
|
)
|
|
set(WATER_SRC
|
|
water.material
|
|
water.program
|
|
water.frag
|
|
water.vert
|
|
depth.frag
|
|
depth.vert
|
|
water.compositor
|
|
waves2.png
|
|
)
|
|
set(MATERIAL_FILES)
|
|
foreach(MATERIAL_FILE ${SKYBOX_SRC})
|
|
list(APPEND MATERIAL_FILES skybox/${MATERIAL_FILE})
|
|
endforeach()
|
|
foreach(MATERIAL_FILE ${DEBUG_MATERIAL_SRC})
|
|
list(APPEND MATERIAL_FILES resources/debug/${MATERIAL_FILE})
|
|
endforeach()
|
|
foreach(MATERIAL_FILE ${WATER_SRC})
|
|
list(APPEND MATERIAL_FILES water/${MATERIAL_FILE})
|
|
endforeach()
|
|
|
|
|
|
|
|
set(MATERIALS_OUTPUT)
|
|
foreach(MATERIAL_FILE ${MATERIAL_FILES})
|
|
set(OUTPUT_FILE ${CMAKE_BINARY_DIR}/${MATERIAL_FILE})
|
|
set(INPUT_FILE ${CMAKE_SOURCE_DIR}/${MATERIAL_FILE})
|
|
add_custom_command(OUTPUT ${OUTPUT_FILE}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${INPUT_FILE} ${OUTPUT_FILE}
|
|
DEPENDS ${INPUT_FILE})
|
|
list(APPEND MATERIALS_OUTPUT ${OUTPUT_FILE})
|
|
endforeach()
|
|
|
|
file(GLOB VRM_FILES RELATIVE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/assets/vroid/*.vrm)
|
|
file(GLOB MIXAMO_FILES RELATIVE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/assets/blender/mixamo/**/*.fbx)
|
|
set(VRM_SOURCE)
|
|
foreach(VRM_FILE ${VRM_FILES} ${MIXAMO_FILES})
|
|
set(OUTPUT_FILE "${CMAKE_BINARY_DIR}/${VRM_FILE}")
|
|
set(INPUT_FILE "${CMAKE_SOURCE_DIR}/${VRM_FILE}")
|
|
add_custom_command(OUTPUT "${OUTPUT_FILE}"
|
|
COMMAND ${CMAKE_COMMAND} -E copy "${INPUT_FILE}" "${OUTPUT_FILE}"
|
|
DEPENDS "${INPUT_FILE}" VERBATIM)
|
|
list(APPEND VRM_SOURCE "${OUTPUT_FILE}")
|
|
endforeach()
|
|
|
|
set(VRM_IMPORTED_BLENDS
|
|
${CMAKE_BINARY_DIR}/assets/blender/vrm-vroid-normal-female.blend
|
|
${CMAKE_BINARY_DIR}/assets/blender/vrm-vroid-normal-male.blend
|
|
${CMAKE_BINARY_DIR}/assets/blender/shapes/male/vrm-vroid-normal-male-chibi.blend
|
|
)
|
|
|
|
add_custom_command(OUTPUT ${VRM_IMPORTED_BLENDS}
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CREATE_DIRECTORIES}
|
|
COMMAND ${BLENDER} -b -Y -P ${CMAKE_SOURCE_DIR}/assets/blender/scripts/import_vrm.py
|
|
COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${VRM_IMPORTED_BLENDS}
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/scripts/import_vrm.py
|
|
${VRM_SOURCE}
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
|
|
set(EDITED_BLENDS_LIST
|
|
male
|
|
female
|
|
)
|
|
set(EDITED_BLEND_TARGETS)
|
|
set(CHARACTER_GLBS)
|
|
foreach(EDITED_BLEND ${EDITED_BLENDS_LIST})
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_BINARY_DIR}/assets/blender/edited-normal-${EDITED_BLEND}.blend
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/edited-normal-${EDITED_BLEND}.blend
|
|
${CMAKE_BINARY_DIR}/assets/blender/vrm-vroid-normal-${EDITED_BLEND}.blend
|
|
COMMAND ${CMAKE_COMMAND}
|
|
-E copy ${CMAKE_SOURCE_DIR}/assets/blender/edited-normal-${EDITED_BLEND}.blend
|
|
${CMAKE_BINARY_DIR}/assets/blender/edited-normal-${EDITED_BLEND}.blend
|
|
COMMAND ${BLENDER} -b -Y
|
|
${CMAKE_BINARY_DIR}/assets/blender/edited-normal-${EDITED_BLEND}.blend
|
|
-P ${CMAKE_SOURCE_DIR}/assets/blender/scripts/copy_animations.py --
|
|
${CMAKE_BINARY_DIR}/assets/blender/vrm-vroid-normal-${EDITED_BLEND}.blend ${EDITED_BLEND}
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
)
|
|
list(APPEND EDITED_BLEND_TARGETS ${CMAKE_BINARY_DIR}/assets/blender/edited-normal-${EDITED_BLEND}.blend)
|
|
list(APPEND CHARACTER_GLBS ${CMAKE_BINARY_DIR}/characters/${EDITED_BLEND}/normal-${EDITED_BLEND}.glb)
|
|
endforeach()
|
|
|
|
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/characters/shapes/male/chibi/vroid-normal-male-chibi.glb
|
|
DEPENDS ${CMAKE_BINARY_DIR}/assets/blender/characters/shapes/male/chibi/vroid-normal-male-chibi.glb
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/assets/blender/characters/shapes/male/chibi/vroid-normal-male-chibi.glb
|
|
${CMAKE_BINARY_DIR}/characters/shapes/male/chibi/vroid-normal-male-chibi.glb)
|
|
add_custom_target(morph ALL DEPENDS MorphTargetsResearch ${CMAKE_BINARY_DIR}/characters/shapes/male/chibi/vroid-normal-male-chibi.glb)
|
|
|
|
set(COPY_BLENDS edited-shape-test-male.blend edited-normal-male-base.blend)
|
|
foreach (COPY_BLEND_FILE ${COPY_BLENDS})
|
|
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/assets/blender/${COPY_BLEND_FILE}
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/${COPY_BLEND_FILE}
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_SOURCE_DIR}/assets/blender/${COPY_BLEND_FILE}
|
|
${CMAKE_BINARY_DIR}/assets/blender/${COPY_BLEND_FILE}
|
|
)
|
|
list(APPEND EDITED_BLEND_TARGETS ${CMAKE_BINARY_DIR}/assets/blender/${COPY_BLEND_FILE})
|
|
endforeach()
|
|
|
|
add_custom_target(edited-blends ALL DEPENDS ${EDITED_BLEND_TARGETS})
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CHARACTER_GLBS}
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CREATE_DIRECTORIES}
|
|
COMMAND ${BLENDER} -b -Y -P ${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_models.py
|
|
COMMAND ${CMAKE_COMMAND} -E touch ${CHARACTER_GLBS}
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_models.py ${VRM_IMPORTED_BLENDS} ${EDITED_BLEND_TARGETS}
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
#add_custom_command(
|
|
# OUTPUT ${CMAKE_SOURCE_DIR}/characters/female/vroid-normal-female.scene
|
|
# ${CMAKE_SOURCE_DIR}/characters/male/vroid-normal-male.scene
|
|
# ${CMAKE_SOURCE_DIR}/assets/blender/vrm-vroid-normal-female.blend
|
|
# ${CMAKE_SOURCE_DIR}/assets/blender/vrm-vroid-normal-male.blend
|
|
# ${CMAKE_SOURCE_DIR}/assets/blender/shapes/male/vrm-vroid-normal-male-chibi.blend
|
|
# COMMAND mkdir -p ${CREATE_DIRECTORIES}
|
|
# COMMAND ${BLENDER} -b -Y -P ${CMAKE_SOURCE_DIR}/assets/blender/scripts/import_vrm.py
|
|
# COMMAND ${BLENDER} -b -Y -P ${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_models.py
|
|
## COMMAND ${BLENDER} -b -Y -P ${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_ogre_scene.py
|
|
# COMMAND echo rm -Rf ${CMAKE_SOURCE_DIR}/characters/male/*.material ${CMAKE_SOURCE_DIR}/characters/female/*.material
|
|
# COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/characters
|
|
# ${CMAKE_BINARY_DIR}/characters
|
|
# DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_models.py ${CMAKE_SOURCE_DIR}/assets/blender/scripts/import_vrm.py
|
|
# ${CMAKE_SOURCE_DIR}/assets/vroid/buch1.vrm
|
|
# ${CMAKE_SOURCE_DIR}/assets/vroid/buch1-chibi.vrm
|
|
# ${CMAKE_SOURCE_DIR}/assets/vroid/jane2-dress.vrm
|
|
# WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
|
|
|
add_custom_target(stage_files ALL DEPENDS ${CMAKE_BINARY_DIR}/resources.cfg ${MATERIALS_OUTPUT}
|
|
${CMAKE_BINARY_DIR}/resources/terrain/world_map.png
|
|
${CMAKE_BINARY_DIR}/resources/terrain/brushes.png
|
|
edited-blends)
|
|
|
|
add_custom_target(remove_scenes COMMAND rm -f ${VRM_SOURCE} ${VRM_IMPORTED_BLENDS} ${CHARACTER_GLBS})
|
|
|
|
add_custom_target(import_vrm DEPENDS ${CHARACTER_GLBS})
|
|
|
|
install(TARGETS Editor DESTINATION bin)
|
|
|