diff --git a/copier.yaml b/copier.yaml index 5b7b096..16f9151 100644 --- a/copier.yaml +++ b/copier.yaml @@ -54,6 +54,12 @@ add_extension: _subdirectory: "{{ add_extension }}" +add_vcpkg: + type: bool + default: false + help: Add vcpkg dependency management + when: "{{ add_extension in ['cpp', 'cppjswasm'] }}" + python_version_primary: type: str default: 3.11 diff --git a/cpp/.github/workflows/build.yaml.jinja b/cpp/.github/workflows/build.yaml.jinja index 19e0b30..af9be29 100644 --- a/cpp/.github/workflows/build.yaml.jinja +++ b/cpp/.github/workflows/build.yaml.jinja @@ -61,6 +61,10 @@ jobs: - uses: actions-ext/cpp/setup@51c484ef64088c62434226039d0e3359f5fc8df6 + {% if add_vcpkg -%} + - uses: actions-ext/cpp/setup-vcpkg-cache@6ded4958b7e13d73428138a01d53c33cb941121d + + {% endif -%} - name: Install dependencies run: make develop diff --git a/cpp/.gitignore.jinja b/cpp/.gitignore.jinja index f57991a..0be369b 100644 --- a/cpp/.gitignore.jinja +++ b/cpp/.gitignore.jinja @@ -13,6 +13,12 @@ __pycache__/ *.exp *.lib +{% if add_vcpkg -%} +# vcpkg +vcpkg/ +vcpkg_installed/ + +{% endif -%} # Rust target target-capi diff --git a/cpp/pyproject.toml.jinja b/cpp/pyproject.toml.jinja index f1aad71..e4b328b 100644 --- a/cpp/pyproject.toml.jinja +++ b/cpp/pyproject.toml.jinja @@ -135,6 +135,11 @@ packages = [ "{{ module }}", "cpp", ] +{% if add_vcpkg %} +[tool.hatch.build.targets.sdist.force-include] +"vcpkg.json" = "vcpkg.json" +"vcpkg-overlays" = "vcpkg-overlays" +{% endif %} [tool.hatch.build.targets.wheel] packages = [ diff --git a/cpp/{% if add_vcpkg %}vcpkg-overlays{% endif %}/.gitkeep b/cpp/{% if add_vcpkg %}vcpkg-overlays{% endif %}/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cpp/{% if add_vcpkg %}vcpkg-overlays{% endif %}/.gitkeep @@ -0,0 +1 @@ + diff --git a/cpp/{% if add_vcpkg %}vcpkg.json{% endif %}.jinja b/cpp/{% if add_vcpkg %}vcpkg.json{% endif %}.jinja new file mode 100644 index 0000000..edcd9e1 --- /dev/null +++ b/cpp/{% if add_vcpkg %}vcpkg.json{% endif %}.jinja @@ -0,0 +1,8 @@ +{ + "dependencies": [], + "configuration": { + "overlay-ports": [ + "vcpkg-overlays" + ] + } +} diff --git a/cppjswasm/.github/workflows/build.yaml.jinja b/cppjswasm/.github/workflows/build.yaml.jinja index 31f51f0..14480b7 100644 --- a/cppjswasm/.github/workflows/build.yaml.jinja +++ b/cppjswasm/.github/workflows/build.yaml.jinja @@ -49,6 +49,10 @@ jobs: - uses: actions-ext/cpp/setup@51c484ef64088c62434226039d0e3359f5fc8df6 + {% if add_vcpkg -%} + - uses: actions-ext/cpp/setup-vcpkg-cache@6ded4958b7e13d73428138a01d53c33cb941121d + + {% endif -%} - uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 - name: Install dependencies diff --git a/cppjswasm/.gitignore.jinja b/cppjswasm/.gitignore.jinja index f57991a..0be369b 100644 --- a/cppjswasm/.gitignore.jinja +++ b/cppjswasm/.gitignore.jinja @@ -13,6 +13,12 @@ __pycache__/ *.exp *.lib +{% if add_vcpkg -%} +# vcpkg +vcpkg/ +vcpkg_installed/ + +{% endif -%} # Rust target target-capi diff --git a/cppjswasm/pyproject.toml.jinja b/cppjswasm/pyproject.toml.jinja index f00689d..2e0ca24 100644 --- a/cppjswasm/pyproject.toml.jinja +++ b/cppjswasm/pyproject.toml.jinja @@ -153,6 +153,11 @@ packages = [ "cpp", "js", ] +{% if add_vcpkg %} +[tool.hatch.build.targets.sdist.force-include] +"vcpkg.json" = "vcpkg.json" +"vcpkg-overlays" = "vcpkg-overlays" +{% endif %} [tool.hatch.build.targets.wheel] packages = [ diff --git a/cppjswasm/{% if add_vcpkg %}vcpkg-overlays{% endif %}/.gitkeep b/cppjswasm/{% if add_vcpkg %}vcpkg-overlays{% endif %}/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cppjswasm/{% if add_vcpkg %}vcpkg-overlays{% endif %}/.gitkeep @@ -0,0 +1 @@ + diff --git a/cppjswasm/{% if add_vcpkg %}vcpkg.json{% endif %}.jinja b/cppjswasm/{% if add_vcpkg %}vcpkg.json{% endif %}.jinja new file mode 100644 index 0000000..edcd9e1 --- /dev/null +++ b/cppjswasm/{% if add_vcpkg %}vcpkg.json{% endif %}.jinja @@ -0,0 +1,8 @@ +{ + "dependencies": [], + "configuration": { + "overlay-ports": [ + "vcpkg-overlays" + ] + } +} diff --git a/examples/cpp.yaml b/examples/cpp.yaml index 62853fc..71b927d 100644 --- a/examples/cpp.yaml +++ b/examples/cpp.yaml @@ -1,5 +1,6 @@ --- add_docs: true +add_vcpkg: true add_wiki: true add_extension: cpp email: 3105306+timkpaine@users.noreply.github.com diff --git a/examples/cppjswasm.yaml b/examples/cppjswasm.yaml index 0cbde15..dfa020d 100644 --- a/examples/cppjswasm.yaml +++ b/examples/cppjswasm.yaml @@ -1,5 +1,6 @@ --- add_docs: true +add_vcpkg: true add_wiki: true add_extension: cppjswasm email: 3105306+timkpaine@users.noreply.github.com