Giter Site home page Giter Site logo

Comments (12)

takumin avatar takumin commented on May 27, 2024 1

It's trivial, but I think you need to mention in the README that you also need to get the git submodule.
(Mainly for beginners)

from mirakc-arib.

masnagam avatar masnagam commented on May 27, 2024 1

OK. I can create a PR for this issue, but it may take some time to complete. Currently, I'm focusing on another project.

If you have a time, you can try to create a PR.

from mirakc-arib.

takumin avatar takumin commented on May 27, 2024 1

OK! I will create a PR.
Please give me a little time 🙏

from mirakc-arib.

masnagam avatar masnagam commented on May 27, 2024 1

Updating third party modules is automated:
https://github.com/mirakc/mirakc-arib/blob/main/.github/workflows/daily.yml

I'll modify related scripts and settings after I merge your PR. So, you don't need to take care about that. Of course, you can try to modify them if you have a time.

from mirakc-arib.

masnagam avatar masnagam commented on May 27, 2024 1

No problem. Thank you so much for your help!

from mirakc-arib.

takumin avatar takumin commented on May 27, 2024 1

@masnagam
I have created a PR for offline builds.
The daily GitHub Actions have also changed.
Thank you for your review!

from mirakc-arib.

takumin avatar takumin commented on May 27, 2024

I'm sorry, I forgot some important changes, so I fixed the issue.

from mirakc-arib.

masnagam avatar masnagam commented on May 27, 2024

Thank you for your proposal.

We selected the git download method instead of the url download method so that we can easily make a patch for an external project when we need to modify it. So, we'd like to keep using the git download method even if we support the url download method.

Solution 1

One of simple solutions is using two ExternalProject_Adds like below:

if(MIRAKC_ARIB_USE_URL_DOWNLOAD)
  ExternalProject_Add(vendor-docopt
    URL ...
  )
else()
  ExternalProject_Add(vendor-docopt
    GIT_REPOSITORY ...
  )
endif()

This solution makes code clones, but works properly.

Solution 2

We may be able to solve your issue with Git submodule + the SOURCE_DIR property of ExternalProject_Add. However, I've never used this property. So, I'm not sure if this works properly.

Solution 3

If you want to download source files of external projects before building, you can run the following command:

cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release

# download docopt with the git download method
ninja -C build vendor/src/vendor-docopt-stamp/vendor-docopt-download

We use Ninja in the example above, but similar targets are probably defined in other project files like Makefiles.

There seems be no description about xxx-download targets in the cmake document. So, naming rules of such targets may change in the future.

from mirakc-arib.

masnagam avatar masnagam commented on May 27, 2024

I think the solution 2 is better than the others. WDYT?

from mirakc-arib.

masnagam avatar masnagam commented on May 27, 2024

Of course, you can propose other solutions.

from mirakc-arib.

takumin avatar takumin commented on May 27, 2024

Thank you for your quick reply!

I think Solution 2 is good!

For reference, the grpc sample project seems to recommend the git submodule.

https://github.com/grpc/grpc/blob/bb1c7fce6c49ccd1df47b4a39a86a856843e42a9/examples/cpp/helloworld/cmake_externalproject/CMakeLists.txt#L30-L32

from mirakc-arib.

takumin avatar takumin commented on May 27, 2024

great!!!
If possible, I would like to modify GitHub Actions, but since the amount of modification of CMakeLists.txt is larger than I expected, please concentrate on the support of Git submodule first. sorry 🙏

from mirakc-arib.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.