Skip to content

Commit

Permalink
Add function vcpkg_configure_make/vcpkg_build_make/vcpkg_install_make…
Browse files Browse the repository at this point in the history
…/vcpkg_build_nmake/vcpkg_install_nmake (#8267)

* Add function vcpkg_configure_make/vcpkg_build_make.

* Fix autoreconf command and add log.

* Add vcpkg_install_make.

* Fix call function name.

* support non-debug mode.

* Add nmake support.

* [tcl]Add new port for testing.

* [vcpkg_configure_make]Fix prefix in linux.

* restart CI systen.

* Separate vcpkg_build_nmake/vcpkg_install_nmake. Add arg PROJECT_NAME.

* fix copy source file. add samples.

* Remove uncommon options.
Add force install para to autoreconf.

* fix build error.

* fix options judgment.

* enable nmake in windows.

* fix some envs and macros. Disable NMAKE in vcpkg_configure_make currently.

* update docs.

* fix environments.

* Modify libosip2 to use vcpkg_configure_make/vcpkg_install_make.

* [tcl]Tcl separates PR.

* trigger PR-EAGER.

* [freexl]Fix options name and remove option NMAKE.

* use tool-chain instead of set environments manually.

* fix autoreconf para.

* use vcpkg_execute_build_process instead.
  • Loading branch information
JackBoosY authored and cbezault committed Oct 5, 2019
1 parent 47c6b3f commit ad493fd
Show file tree
Hide file tree
Showing 18 changed files with 1,148 additions and 299 deletions.
11 changes: 8 additions & 3 deletions docs/maintainers/portfile-functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@
- [vcpkg\_add\_to\_path](vcpkg_add_to_path.md)
- [vcpkg\_apply\_patches](vcpkg_apply_patches.md)
- [vcpkg\_build\_cmake](vcpkg_build_cmake.md)
- [vcpkg\_build\_msbuild](vcpkg_build_msbuild.md)
- [vcpkg\_build\_msbuild](vcpkg_build_msbuild.md)
- [vcpkg\_build\_make](vcpkg_build_make.md)
- [vcpkg\_build\_nmake](vcpkg_build_nmake.md)
- [vcpkg\_check\_features](vcpkg_check_features.md)
- [vcpkg\_check\_linkage](vcpkg_check_linkage.md)
- [vcpkg\_clean\_msbuild](vcpkg_clean_msbuild.md)
- [vcpkg\_common\_definitions](vcpkg_common_definitions.md)
- [vcpkg\_configure\_cmake](vcpkg_configure_cmake.md)
- [vcpkg\_configure\_cmake](vcpkg_configure_cmake.md)
- [vcpkg\_configure\_make](vcpkg_configure_make.md)
- [vcpkg\_copy\_pdbs](vcpkg_copy_pdbs.md)
- [vcpkg\_copy\_tool\_dependencies](vcpkg_copy_tool_dependencies.md)
- [vcpkg\_download\_distfile](vcpkg_download_distfile.md)
Expand All @@ -26,6 +29,8 @@
- [vcpkg\_from\_github](vcpkg_from_github.md)
- [vcpkg\_from\_gitlab](vcpkg_from_gitlab.md)
- [vcpkg\_install\_cmake](vcpkg_install_cmake.md)
- [vcpkg\_install\_msbuild](vcpkg_install_msbuild.md)
- [vcpkg\_install\_msbuild](vcpkg_install_msbuild.md)
- [vcpkg\_install\_make](vcpkg_install_make.md)
- [vcpkg\_install\_nmake](vcpkg_install_nmake.md)
- [vcpkg\_prettify\_command](vcpkg_prettify_command.md)
- [vcpkg\_test\_cmake](vcpkg_test_cmake.md)
30 changes: 30 additions & 0 deletions docs/maintainers/vcpkg_build_make.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# vcpkg_build_make

Build a linux makefile project.

## Usage:
```cmake
vcpkg_build_make([TARGET <target>])
```

### TARGET
The target passed to the configure/make build command (`./configure/make/make install`). If not specified, no target will
be passed.

### ADD_BIN_TO_PATH
Adds the appropriate Release and Debug `bin\` directories to the path during the build such that executables can run against the in-tree DLLs.

## Notes:
This command should be preceeded by a call to [`vcpkg_configure_make()`](vcpkg_configure_make.md).
You can use the alias [`vcpkg_install_make()`](vcpkg_configure_make.md) function if your CMake script supports the
"install" target

## Examples

* [x264](https://github.com/Microsoft/vcpkg/blob/master/ports/x264/portfile.cmake)
* [tcl](https://github.com/Microsoft/vcpkg/blob/master/ports/tcl/portfile.cmake)
* [freexl](https://github.com/Microsoft/vcpkg/blob/master/ports/freexl/portfile.cmake)
* [libosip2](https://github.com/Microsoft/vcpkg/blob/master/ports/libosip2/portfile.cmake)

## Source
[scripts/cmake/vcpkg_build_make.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_build_make.cmake)
63 changes: 63 additions & 0 deletions docs/maintainers/vcpkg_build_nmake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# vcpkg_build_nmake

Build a msvc makefile project.

## Usage:
```cmake
vcpkg_build_nmake(
SOURCE_PATH <${SOURCE_PATH}>
[NO_DEBUG]
PROJECT_SUBPATH <${SUBPATH}>
PROJECT_NAME <${MAKEFILE_NAME}>
[OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]
[OPTIONS_RELEASE <-DOPTIMIZE=1>...]
[OPTIONS_DEBUG <-DDEBUGGABLE=1>...]
[TARGET <target>])
```

## Parameters
### SOURCE_PATH
Specifies the directory containing the source files.
By convention, this is usually set in the portfile as the variable `SOURCE_PATH`.

### PROJECT_SUBPATH
Specifies the sub directory containing the `makefile.vc`/`makefile.mak`/`makefile.msvc` or other msvc makefile.

### PROJECT_NAME
Specifies the name of msvc makefile name.
Default is `makefile.vc`

### NO_DEBUG
This port doesn't support debug mode.

### ENABLE_INSTALL
Install binaries after build.

### OPTIONS
Additional options passed to generate during the generation.

### OPTIONS_RELEASE
Additional options passed to generate during the Release generation. These are in addition to `OPTIONS`.

### OPTIONS_DEBUG
Additional options passed to generate during the Debug generation. These are in addition to `OPTIONS`.

### TARGET
The target passed to the nmake build command (`nmake/nmake install`). If not specified, no target will
be passed.

### ADD_BIN_TO_PATH
Adds the appropriate Release and Debug `bin\` directories to the path during the build such that executables can run against the in-tree DLLs.

## Notes:
This command should be preceeded by a call to [`vcpkg_configure_nmake()`](vcpkg_configure_nmake.md).
You can use the alias [`vcpkg_install_nmake()`](vcpkg_configure_nmake.md) function if your CMake script supports the
"install" target

## Examples

* [tcl](https://github.com/Microsoft/vcpkg/blob/master/ports/tcl/portfile.cmake)
* [freexl](https://github.com/Microsoft/vcpkg/blob/master/ports/freexl/portfile.cmake)

## Source
[scripts/cmake/vcpkg_build_nmake.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_build_nmake.cmake)
74 changes: 74 additions & 0 deletions docs/maintainers/vcpkg_configure_make.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# vcpkg_configure_make

Configure `configure` for Debug and Release builds of a project.

## Usage
```cmake
vcpkg_configure_make(
SOURCE_PATH <${SOURCE_PATH}>
[AUTOCONFIG]
[DISABLE_AUTO_HOST]
[DISABLE_AUTO_DST]
[GENERATOR]
[NO_DEBUG]
[PROJECT_SUBPATH <${PROJ_SUBPATH}>]
[PRERUN_SHELL <${SHELL_PATH}>]
[OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]
[OPTIONS_RELEASE <-DOPTIMIZE=1>...]
[OPTIONS_DEBUG <-DDEBUGGABLE=1>...]
)
```

## Parameters
### SOURCE_PATH
Specifies the directory containing the `configure`/`configure.ac`.
By convention, this is usually set in the portfile as the variable `SOURCE_PATH`.

### PROJECT_SUBPATH
Specifies the directory containing the ``configure`/`configure.ac`.
By convention, this is usually set in the portfile as the variable `SOURCE_PATH`.
Should use `GENERATOR NMake` first.

### NO_DEBUG
This port doesn't support debug mode.

### AUTOCONFIG
Need to use autoconfig to generate configure file.

### DISABLE_AUTO_HOST
Don't set host automatically, the default value is `i686`.
If use this option, you will need to set host manually.

### DISABLE_AUTO_DST
Don't set installation path automatically, the default value is `${CURRENT_PACKAGES_DIR}` and `${CURRENT_PACKAGES_DIR}/debug`
If use this option, you will need to set dst path manually.

### GENERATOR
Specifies the precise generator to use.
NMake: nmake(windows) make(unix)
MAKE: make(windows) make(unix)

### PRERUN_SHELL
Script that needs to be called before configuration

### OPTIONS
Additional options passed to configure during the configuration.

### OPTIONS_RELEASE
Additional options passed to configure during the Release configuration. These are in addition to `OPTIONS`.

### OPTIONS_DEBUG
Additional options passed to configure during the Debug configuration. These are in addition to `OPTIONS`.

## Notes
This command supplies many common arguments to configure. To see the full list, examine the source.

## Examples

* [x264](https://github.com/Microsoft/vcpkg/blob/master/ports/x264/portfile.cmake)
* [tcl](https://github.com/Microsoft/vcpkg/blob/master/ports/tcl/portfile.cmake)
* [freexl](https://github.com/Microsoft/vcpkg/blob/master/ports/freexl/portfile.cmake)
* [libosip2](https://github.com/Microsoft/vcpkg/blob/master/ports/libosip2/portfile.cmake)

## Source
[scripts/cmake/vcpkg_configure_make.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_configure_make.cmake)
24 changes: 24 additions & 0 deletions docs/maintainers/vcpkg_install_make.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# vcpkg_install_make

Build and install a make project.

## Usage:
```cmake
vcpkg_install_make(...)
```

## Parameters:
See [`vcpkg_build_make()`](vcpkg_build_make.md).

## Notes:
This command transparently forwards to [`vcpkg_build_make()`](vcpkg_build_make.md), adding `ENABLE_INSTALL`

## Examples

* [x264](https://github.com/Microsoft/vcpkg/blob/master/ports/x264/portfile.cmake)
* [tcl](https://github.com/Microsoft/vcpkg/blob/master/ports/tcl/portfile.cmake)
* [freexl](https://github.com/Microsoft/vcpkg/blob/master/ports/freexl/portfile.cmake)
* [libosip2](https://github.com/Microsoft/vcpkg/blob/master/ports/libosip2/portfile.cmake)

## Source
[scripts/cmake/vcpkg_install_make.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_install_make.cmake)
48 changes: 48 additions & 0 deletions docs/maintainers/vcpkg_install_nmake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# vcpkg_install_nmake

Build and install a msvc makefile project.

## Usage:
```cmake
vcpkg_install_nmake(
SOURCE_PATH <${SOURCE_PATH}>
[NO_DEBUG]
PROJECT_SUBPATH <${SUBPATH}>
PROJECT_NAME <${MAKEFILE_NAME}>
[OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]
[OPTIONS_RELEASE <-DOPTIMIZE=1>...]
[OPTIONS_DEBUG <-DDEBUGGABLE=1>...]
```

## Parameters
### SOURCE_PATH
Specifies the directory containing the source files.
By convention, this is usually set in the portfile as the variable `SOURCE_PATH`.

### PROJECT_SUBPATH
Specifies the sub directory containing the `makefile.vc`/`makefile.mak`/`makefile.msvc` or other msvc makefile.

### PROJECT_NAME
Specifies the name of msvc makefile name.
Default is makefile.vc

### NO_DEBUG
This port doesn't support debug mode.

### OPTIONS
Additional options passed to generate during the generation.

### OPTIONS_RELEASE
Additional options passed to generate during the Release generation. These are in addition to `OPTIONS`.

### OPTIONS_DEBUG
Additional options passed to generate during the Debug generation. These are in addition to `OPTIONS`.

## Parameters:
See [`vcpkg_build_nmake()`](vcpkg_build_nmake.md).

## Notes:
This command transparently forwards to [`vcpkg_build_nmake()`](vcpkg_build_nmake.md), adding `ENABLE_INSTALL`

## Source
[scripts/cmake/vcpkg_install_nmake.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_install_nmake.cmake)
2 changes: 1 addition & 1 deletion ports/freexl/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Source: freexl
Version: 1.0.4-2
Version: 1.0.4-5
Homepage: https://www.gaia-gis.it/gaia-sins/freexl-sources
Description: FreeXL is an open source library to extract valid data from within an Excel (.xls) spreadsheet
Build-Depends: libiconv
Expand Down
Loading

0 comments on commit ad493fd

Please sign in to comment.