Skip to content

Commit

Permalink
Implemented -pkg-link {uri} key for DllExport manager. Issue #53
Browse files Browse the repository at this point in the history
Also trivial updates for Readme with manager and badges; updated info about 3rd-party software; and added template for new issues on GitHub
  • Loading branch information
3F committed Oct 23, 2017
1 parent 577f8c2 commit a49a2bd
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 36 deletions.
25 changes: 25 additions & 0 deletions .github/issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## How to reproduce

... Try to isolate problem via very simple code.

## What version and selected configuration ?

...

## Can you provide detailed log of your build ?

...

To set `detailed` or `diagnostics` level:

* For VS IDE: `Tools` - `Options` - `Project and Solutions` - `Build and Run` - MSBuild project build verbosity
* For msbuild.exe: `/v:diag`:

```
msbuild <sln> /t:Rebuild /m:4 /v:diag > build.log
```

-----------
Please note

You can attach any data to help understand your problem, However, **do not forget about copyrights, license etc.** of your (or company) program, because this code will be available for 3rd party side, thus please check that you have required rights !
38 changes: 29 additions & 9 deletions 3rd-party.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,35 @@ DllExport [ github.com/3F/DllExport ]

# Third-party software components

## DllExport project includes:
## DllExport project includes:

* CoreCLR / ILAsm / ILDasm [ github.com/3F/coreclr ]
* Mono.Cecil [ github.com/jbevain/cecil ]
* SDK reference assemblies for PowerShell version 5 [ github.com/PowerShell/ ]

## Maintaining of this project also includes:
### CoreCLR ILAsm & ILDasm

* vsSolutionBuildEvent /+ CI.MSBuild [ github.com/3F/vsSolutionBuildEvent ]
* GetNuTool [ github.com/3F/GetNuTool ]
* hMSBuild [ github.com/3F/hMSBuild ]
* https://github.com/3F/coreclr

### Mono.Cecil

* https://github.com/jbevain/cecil

### MvSln

* https://github.com/3F/MvsSln

### GetNuTool core & hMSBuild logic

As an main core for new manager.

* https://github.com/3F/GetNuTool
* https://github.com/3F/hMSBuild

### SDK reference assemblies for PowerShell version 5

For previous Configurator (obsolete today).
* https://github.com/PowerShell/

## Maintaining of this project also includes the following tools:

* vsSolutionBuildEvent /+ CI.MSBuild [ github.com/3F/vsSolutionBuildEvent ]
* GetNuTool [ github.com/3F/GetNuTool ]
* hMSBuild [ github.com/3F/hMSBuild ]

8 changes: 6 additions & 2 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ Copyright (c) 2016-2017 Denis Kuzmin <entry.reg@gmail.com>
[![Latest-Release](https://img.shields.io/github/release/3F/DllExport.svg)](https://github.com/3F/DllExport/releases/latest)
[![License](https://img.shields.io/badge/License-MIT-74A5C2.svg)](https://github.com/3F/DllExport/blob/master/LICENSE)
[![NuGet package](https://img.shields.io/nuget/v/DllExport.svg)](https://www.nuget.org/packages/DllExport/)
[![coreclr_ILAsm](https://img.shields.io/badge/coreclr_ILAsm-v4.5.1-F34B7D.svg)](https://github.com/3F/coreclr)
[![GetNuTool core](https://img.shields.io/badge/GetNuTool-v1.6.1-93C10B.svg)](https://github.com/3F/GetNuTool)
[![MvsSln](https://img.shields.io/badge/MvsSln-v1.0.1-865FC5.svg)](https://github.com/3F/MvsSln)


[`DllExport`](https://3f.github.io/DllExport/releases/latest/manager/)` -action Configure` [[?](#how-to-get-dllexport)]
Expand Down Expand Up @@ -62,6 +64,8 @@ Where to look ? v1.2+ provides dynamic definitions of namespaces (ddNS feature),
New Wizard and our lightweight manager [[?](https://github.com/3F/DllExport/issues/38)]:
[![DllExport.bat](https://raw.githubusercontent.com/3F/DllExport/master/Resources/img/DllExport_manager.png)](https://3f.github.io/DllExport/releases/latest/manager/)
[![youtube.com/watch?v=okPThdWDZMM](https://raw.githubusercontent.com/3F/DllExport/master/Resources/img/DllExport_Wizard_overview_youtube.jpg)](https://www.youtube.com/watch?v=okPThdWDZMM)
----
Expand All @@ -82,9 +86,9 @@ It still under the [MIT License (MIT)](https://github.com/3F/DllExport/blob/mast
### How it works
Current features has been implemented through [ILDasm](https://github.com/3F/coreclr/tree/master/src/ildasm) & [ILAsm](https://github.com/3F/coreclr/tree/master/src/ilasm) that does the all required steps via `.export` directive ([it's specific directive for ILAsm compiler only](https://github.com/3F/DllExport/issues/45#issuecomment-317802099)).
Current features has been implemented through [ILDasm](https://github.com/3F/coreclr/tree/master/src/ildasm) & [ILAsm](https://github.com/3F/coreclr/tree/master/src/ilasm) that makes the all required steps via `.export` directive ([it's specific directive for ILAsm compiler only](https://github.com/3F/DllExport/issues/45#issuecomment-317802099)).
**What inside ? or how works the .export directive ?**
**What inside ? or how does work the .export directive ?**
Read about format PE32/PE32+, start with grammar from asmparse and move to writer:
Expand Down
Binary file added Resources/img/DllExport_manager.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Resources/img/DllExport_ordinals.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
65 changes: 40 additions & 25 deletions Wizard/installer.bat
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ set "wAction="
set "dxpName=DllExport"
set "tWizard=tools/net.r_eg.DllExport.Wizard.targets"
set "dxpPackages=packages"
set "ngserver=https://www.nuget.org/api/v2/package/"
set "pkgSrv=https://www.nuget.org/api/v2/package/"
set "buildInfoFile=build_info.txt"
set "wRootPath=%cd%"

Expand All @@ -30,6 +30,7 @@ set "wRootPath=%cd%"
set /a dxpDebug=0
set /a buildInfo=0
set "gMsbPath="
set "pkgLink="

set ERROR_SUCCESS=0
set ERROR_FILE_NOT_FOUND=2
Expand Down Expand Up @@ -85,13 +86,14 @@ echo.
echo -msb {path} - Full path to specific msbuild.
echo -packages {path} - A common directory for packages.
echo -server {url} - Url for searching remote packages.
echo -pkg-link {uri} - Direct link to package from the source via specified URI.
echo -wz-target {path} - Relative path to .target file of the Wizard.
echo -eng - Try to use english language for all build messages.
echo -GetNuTool {args} - Access to GetNuTool core. https://github.com/3F/GetNuTool
echo -debug - To show additional information from hMSBuild.
echo -version - Display version of hMSBuild.
echo -build-info - Display build information of DllExport.
echo -help - Display this help. Aliases: -help -h -?
echo -debug - To show additional information.
echo -version - Displays version for which (together with) it was compiled.
echo -build-info - Displays actual build information from selected DllExport.
echo -help - Displays this help. Aliases: -help -h -?
echo.
echo.
echo --------
Expand All @@ -106,10 +108,6 @@ echo.
echo DllExport -GetNuTool -unpack
echo DllExport -GetNuTool /p:ngpackages="Conari;regXwild"
echo.
echo ---------------------
echo Possible Error Codes: ERROR_FILE_NOT_FOUND (0x2), ERROR_PATH_NOT_FOUND (0x3), ERROR_SUCCESS (0x0)
echo ---------------------
echo.

exit /B 0

Expand All @@ -124,7 +122,7 @@ if [!_is!]==[1] (
goto usage
)

set /a idx=1 & set cmdMax=15
set /a idx=1 & set cmdMax=16
:loopargs

if "!args:~0,8!"=="-action " (
Expand Down Expand Up @@ -178,7 +176,13 @@ set /a idx=1 & set cmdMax=15

if "!args:~0,8!"=="-server " (
call :popars %1 & shift
set ngserver=%2
set pkgSrv=%2
call :popars %2 & shift
)

if "!args:~0,10!"=="-pkg-link " (
call :popars %1 & shift
set pkgLink=%2
call :popars %2 & shift
)

Expand All @@ -204,7 +208,7 @@ set /a idx=1 & set cmdMax=15
)

if "!args:~0,9!"=="-version " (
@echo DllExport - $-version-$
@echo $-version-$
exit /B 0
)

Expand Down Expand Up @@ -248,16 +252,6 @@ if defined dxpVersion (
set "wPkgPath=!wPkgPath!.!dxpVersion!"
)

if "!buildInfo!"=="1" (
call :dbgprint "buildInfo = '!wPkgPath!\\!buildInfoFile!'"
if not exist "!wPkgPath!\\!buildInfoFile!" (
echo information about build is not available.
exit /B %ERROR_FILE_NOT_FOUND%
)
type "!wPkgPath!\\!buildInfoFile!"
exit /B 0
)

set dxpTarget="!wPkgPath!\\!tWizard!"
call :dbgprint "dxpTarget = '!dxpTarget!'"

Expand All @@ -267,13 +261,35 @@ if not exist !dxpTarget! (
rmdir /S/Q "!wPkgPath!"
)

call :dbgprint "-pkg-link = '!pkgLink!'"
call :dbgprint "-server = '!pkgSrv!'"

:: TODO: hack for GNT v1.6.1
if defined pkgLink (
set pkgSrv=!pkgLink!
set "_remoteUrl=:../!wPkgPath!"
)

call :dbgprint "_remoteUrl = '!_remoteUrl!'"
call :dbgprint "ngpath = '!dxpPackages!'"

set _gntC=/p:ngserver="!pkgSrv!" /p:ngpackages="!_remoteUrl!" /p:ngpath="!dxpPackages!"

if "!dxpDebug!"=="1" (
call :gntpoint /p:ngpackages="!_remoteUrl!" /p:ngpath="!dxpPackages!"
call :gntpoint !_gntC!
) else (
call :gntpoint /p:ngpackages="!_remoteUrl!" /p:ngpath="!dxpPackages!" >nul
call :gntpoint !_gntC! >nul
)
)

if "!buildInfo!"=="1" (
call :dbgprint "buildInfo = '!wPkgPath!\\!buildInfoFile!'"
if not exist "!wPkgPath!\\!buildInfoFile!" (
echo information about build is not available.
exit /B %ERROR_FILE_NOT_FOUND%
)
type "!wPkgPath!\\!buildInfoFile!"
exit /B 0
)

if not exist !dxpTarget! (
Expand All @@ -285,7 +301,6 @@ call :dbgprint "-sln-dir = '!wSlnDir!'"
call :dbgprint "-sln-file = '!wSlnFile!'"
call :dbgprint "-metalib = '!wMetaLib!'"
call :dbgprint "-dxp-target = '!wDxpTarget!'"
call :dbgprint "-server = '!ngserver!'"
call :dbgprint "wRootPath = !wRootPath!"
call :dbgprint "wAction = !wAction!"

Expand Down

0 comments on commit a49a2bd

Please sign in to comment.