@echo off rem Primary build script. Usage rem build.bat 1.1^|2.0 [SN] rem rem The first argument is the .Net framework version rem Supply SN as the second argument to strong-name the assemblies. rem rem To build for the 1.1 framework, execute from a Visual Studio .Net 2003 command prompt. rem To build for the 2.0 framework, execute from a Visual Studio .Net 2005 command prompt. rem set DotNetFWVersion=0 if "%~1"=="1.1" set DotNetFWVersion=1.1 if "%~1"=="2.0" set DotNetFWVersion=2.0 if "%~2"=="SN" ( set CompilingSN=true ) else ( set CompilingSN=false ) if "%DotNetFWVersion%"=="0" ( echo Must include the .Net Framework version! call :usage goto :eof ) if "%DotNetFWVersion%"=="1.1" ( if "%~2"=="SN" ( set OutputPath=%CD%\..\bin\SN_CLR_1.1 ) else ( set OutputPath=%CD%\..\bin\CLR_1.1 ) ) if "%DotNetFWVersion%"=="2.0" ( if "%~2"=="SN" ( set OutputPath=%CD%\..\bin\SN_CLR_2.0 ) else ( set OutputPath=%CD%\..\bin\CLR_2.0 ) ) set SrcPath=%CD%\..\src set BasePath=%CD%\.. call :Compile_P4DN_Assembly call :Compile_P4API_Assembly if exist "%OutputPath%\P4.Net.snk" del "%OutputPath%\P4.Net.snk" goto :eof :usage echo build.bat 1.1^|2.0 [SN] echo. echo The first argument is the .Net framework version echo The second argument is for strong-named vs. weak-named assemblies echo. echo To build for the 1.1 framework, execute from a Visual Studio .Net 2003 command prompt. echo To build for the 2.0 framework, execute from a Visual Studio .Net 2005 command prompt. goto :eof :Compile_P4DN_Assembly rem set the source files set sources= "%SrcPath%\p4dn\AssemblyInfo.cpp" set sources= %sources% "%SrcPath%\p4dn\ClientApi_m.cpp" set sources= %sources% "%SrcPath%\p4dn\ClientUserDelegate.cpp" set sources= %sources% "%SrcPath%\p4dn\ClientUser_m.cpp" set sources= %sources% "%SrcPath%\p4dn\Error_m.cpp" set sources= %sources% "%SrcPath%\p4dn\NoEcho_m.cpp" set sources= %sources% "%SrcPath%\p4dn\Stdafx.cpp" if '%CompilingSN%'=='true' ( set sources= %sources% ""%SrcPath%\p4dn\SNAssemblyInfo.cpp" copy /y "%BasePath%\build\P4.Net.snk" "%OutputPath%\P4.Net.snk" >nul ) rem point to the P4API header files set FLAGS=/Od /I "%BasePath%\ext\p4api" rem VS compiler switches set FLAGS=%FLAGS% /D "WIN32" /D "OS_NT" /D "_WINDLL" /D "_MBCS" rem P4API compiler switches set FLAGS=%FLAGS% /D "CASE_INSENSITIVE" set FLAGS=%FLAGS% /FD /EHa set FLAGS=%FLAGS% /MD set FLAGS=%FLAGS% /W0 /nologo /c /Zi /TP rem different CLR flags for different versions if "%DotNetFWVersion%"=="2.0" ( set FLAGS=%FLAGS% /clr:oldSyntax ) if "%DotNetFWVersion%"=="1.1" ( set FLAGS=%FLAGS% /clr /d1PrivateNativeTypes ) rem now compile cl %FLAGS% %sources% rem set the output assembly set FLAGS=/OUT:"%OutputPath%\p4dn.dll" set FLAGS=%FLAGS% /NOLOGO /DLL /NOENTRY rem set FLAGS=%FLAGS% /NODEFAULTLIB:"LIBCMT.lib" /NODEFAULTLIB:"LIBCMTD.lib" set FLAGS=%FLAGS% /INCLUDE:"__DllMainCRTStartup@12" set FLAGS=%FLAGS% /FIXED:No set FLAGS=%FLAGS% Ws2_32.lib ..\ext\p4api\libclient.lib ..\ext\p4api\librpc.lib ..\ext\p4api\libsupp.lib set FLAGS=%FLAGS% msvcrt.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib set FLAGS=%FLAGS% advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib rem for 2.0 embed the manifest file if "%DotNetFWVersion%"=="2.0" ( set FLAGS=%FLAGS% /MANIFEST /MANIFESTFILE:"%OutputPath%\p4dn.dll.intermediate.manifest" ) rem and now we link... link %FLAGS% "*.obj" rem for 2.0 embed the manifest file if "%DotNetFWVersion%"=="2.0" ( mt /nologo /outputresource:"%OutputPath%\p4dn.dll;#2" /manifest "%OutputPath%\p4dn.dll.intermediate.manifest" rem del /q "%OutputPath%\p4dn.dll.intermediate.manifest" ) if '%CompilingSN%'=='true' ( sn -q -R "%OutputPath%\p4dn.dll" "%BasePath%\build\P4.Net.snk" ) rem now clean-up del /q "*.obj" del /q "*.pdb" del /q "*.idb" goto :eof :Compile_P4API_Assembly set FLAGS=/target:library set FLAGS=%FLAGS% /reference:"%OutputPath%\p4dn.dll" set FLAGS=%FLAGS% /w:0 /o set FLAGS=%FLAGS% "/out:%OutputPath%\p4api.dll" set FLAGS=%FLAGS% /nologo "/doc:%OutputPath%\p4api.xml" set SOURCES="%SrcPath%\P4API\*.cs" "%SrcPath%\P4API\Exceptions\*.cs" "%SrcPath%\P4API\Record\*.cs" if '%CompilingSN%'=='true' ( set SOURCES= %SOURCES% "%SrcPath%\P4API\StrongName\SNAssemblyInfo.cs" ) echo Compiling p4api.dll... csc %FLAGS% %SOURCES% goto :eof
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 7341 | Erik Purins |
p4.net --- pull p4.net#head |
||
//guest/shawn_hladky/P4.Net/release/0.9/build/compile_p4dn.bat | |||||
#2 | 5844 | Shawn Hladky | removing debug flags | ||
#1 | 5831 | Shawn Hladky | P4.Net: Branch release 0.9 and delete a few files missed last time | ||
//guest/shawn_hladky/P4.Net/main/build/compile_p4dn.bat | |||||
#1 | 5830 | Shawn Hladky | P4.Net: reorg to support release branches | ||
//guest/shawn_hladky/P4.Net/build/compile_p4dn.bat | |||||
#7 | 5815 | Shawn Hladky |
P4.Net: more documentation will build strong-named assemblies now. |
||
#6 | 5678 | Shawn Hladky |
WIP... more tests. OnPrompt event to recieve input from prompts. |
||
#5 | 5636 | Shawn Hladky |
1. Added test harness framework, and some initial tests 2. Fixed many bugs (oddly enough identified by the unit tests) 3. Fixes so will build 1.1 Framework (and build batch files actually work) 4. Pathetic attempt at documentation |
||
#4 | 5436 | Shawn Hladky | P4.Net -- Added some high-level functionality | ||
#3 | 5431 | Shawn Hladky |
Refactoring... step 1. |
||
#2 | 5350 | Shawn Hladky | WIP few more changes | ||
#1 | 5349 | Shawn Hladky |
Initial check-in for the new API interface. Nothing works yet, but it should compile at least. |