works from source branch: https://github.com/memsharded/conan/tree/feature/conan_project
conan-project works putting a conan-project.yml in the current folder or one of the parents folder. Conan will go up until a conan-project.yml is found (or none)
The syntax of conan-project.yml is:
HelloB: # The package name that will be remapped to user instead of cache
folder: B # The relative path in which this package is (relative to conan-rpoject)
includedirs: src # Path to look for includes
cmakedir: src # Information to generate meta-project
build: build # Relative path to put the build
libdirs: build/{build_type} # Path to look for libs
# package: pkg # If your build already creates the package use this instead of includedirs/libdirs
HelloC:
folder: C
includedirs: src
cmakedir: src
build: build
libdirs: build/{build_type}
HelloA:
folder: A
cmakedir: src
build: build
generator: cmake # Meta generator
name: MyProject #Name of the meta projectIt works with the same install
$ cd A && conan install . --build -if=build
$ cd A && conan build . -bf=build
$ ./A/build/Release/app
# Debug
$ cd A && conan install . --build -if=build -s build_type=Debug
$ cd A && conan build . -bf=build
$ ./A/build/Debug/app
# Meta project
$ cmake . -G "Visual Studio 15 Win64"
# Open Visual Studio or use command line:
$ cmake --build . --config Release
$ ./A/build/Release/app
# Modify code of B and/or C
$ cmake --build . --config Release
$ ./A/build/Release/app