ryzom / ryzomcore

Ryzom Core is the open-source project related to the Ryzom game. This community repository is synchronized with the Ryzom Forge repository, based on the Core branch.
https://wiki.ryzom.dev
GNU Affero General Public License v3.0
330 stars 89 forks source link

Pipeline configuration generator like CMake #583

Open kaetemi opened 4 years ago

kaetemi commented 4 years ago

Generator for pipeline and tool configuration similar to CMake, using a script in each asset folder.

Proposal to use Lua, since it's already being used by Ryzom.

Sample script.

-- Inheriting parent folder options is optional, usually not practical
-- This may need some flags which things too inherit
inherit()

-- Specify the project that this folder is a part of
project("continents/fyros_island")

-- Add a build process to this folder, with parameters specifying specifics
buildLand("fyros_island.land",
  ecosystem = "ecosystems/desert",
  startPoints = { { 22000, -33950 } },
  sunDirection = { -0.776685, 0.216619, -0.59147 })

-- Specify dependencies needed for the build
-- Maps use the source folder for lookup, not compressed, project itself is automatically a lookup
-- May generate both an uncompressed and compressed lookup list
lookupMaps("ecosystems/desert")
lookupMaps("continents/fyros")
-- Shapes are from build output
lookupShapes("ecosystems/desert")
lookupShapes("continents/fyros")
-- Igs idem
lookupIgs("ecosystems/desert")
lookupIgs("continents/fyros")

Alternatively for lookup

addLookup("ecosystem/desert", map = true, shape = true, ig = true)
addLookup("continents/fyros", map = true, shape = true, ig = true)
addLookup("common/sfx", ps = true)
kaetemi commented 4 years ago

Move sun direction, etc, into continent sheet?

kaetemi commented 4 years ago

Move land files into individual folders per continent.