diff --git a/Build.html b/Build.html index e106a2c08..0f319dd3b 100644 --- a/Build.html +++ b/Build.html @@ -6,7 +6,7 @@ * v. 2.0. If a copy of the MPL was not distributed with this file, You can * obtain one at http://mozilla.org/MPL/2.0/ * - * Copyright (C) 2009-2013, Peter Johnson (www.delphidabbler.com). + * Copyright (C) 2009-2015, Peter Johnson (www.delphidabbler.com). * * $Rev$ * $Date$ @@ -191,6 +191,13 @@
.rc
) files.
+ GenTLB
+ ExternalObj.tlb
type
+ library from source code in ExternalObj.ridl
.
+ TLibImpl
- The MIDL IDL compiler that ships with the MS SDK is required to build
- ExternalObj.tlb
from ExternalObj.idl
.
-
- MIDL requires the use of Microsoft's CL.exe
C Pre-processor
- which in turn requires mspdb**.dll
, where ** is a number that
- depends on the version of Visual Studio used. I use MIDL v7 and
- mspdb80.dll
from the Windows 2008 (v6.1) platform SDK. So that
- MIDL can find these files you need to update your system PATH to include:
-
CL.exe
. This will probably be in a sub folder
- of a MS Visual Studio installation folder. For example:
- C:\Program Files\Microsoft Visual Studio 9.0\VC\bin-
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin-
mspdb**.dll
- is located. For example:
- C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE-
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE-
- The MSSDK
environment variable must be set and contain the
- MS SDK install directory. MIDL.exe
must be in the
- Bin
sub-directory of MSSDK
and the required
- include files must be in the Include
sub-directory.
-
- You can use a batch file with contents similar to the following to set the
- path and the MSSDK
environment variable before building
- CodeSnip:
-
if not "%PATHSET%" == "" goto end -set MSSDK=C:\Program Files\Microsoft SDKs\Windows\v7.1 -set PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin -set PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE -set PATHSET=1 -:end- -
- Note: You do not need a copy of Visual Studio for this - – the required directories and files are created when the SDK is - installed. -
- -
- If you don't already have the MS SDK it's a big job to download and install
- it just to compile one .tlb
file. Therefore there's an
- alternative that means you can compile without the SDK. This is described
- in the section
- Editing and Compiling Without MIDL below.
-
- If you take this route, there's no need to set MSSDK
or modify
- the path.
-
INDY10
MSSDK
(if using MIDL - see step 2)
-
- Update the PATH
environment variable to include the paths that
- MIDL needs (explained above).
+ Update the PATH
environment variable to include
+ %DELPHIROOT%\Bin
as its first path, i.e. do:
> set PATH=%DELPHIROOT%\Bin;%PATH%
+
- If you are not using MIDL then there is no need to modify the
- PATH
variable or set MSSDK
. Instead you can
- define IGNOREMIDL
by setting it to some value, e.g.
- set IGNOREMIDL=1
.
+ You do not have to do this but it means you can run the preferred version of
+ Make
from the command line without having to specify its path
+ every time.
> svn checkout http://codesnip.googlecode.com/svn/trunk/ PATH
+ > svn checkout https://svn.code.sf.net/p/codesnip/code/trunk PATH
+ > svn checkout svn://svn.code.sf.net/p/codesnip/code/trunk PATH
PATH
is the directory where you want to place the
working copy. You will not be able to commit changes unless you join
@@ -565,7 +485,11 @@ > svn export http://codesnip.googlecode.com/svn/trunk/ PATH
+ > svn export https://svn.code.sf.net/p/codesnip/code/trunk PATH
+ > svn export svn://svn.code.sf.net/p/codesnip/code/trunk PATH
PATH
is the directory where you wish to store the
code.
@@ -746,96 +670,6 @@
- If you don't have the MIDL compiler you need to get hold of a pre-compiled
- copy of the ExternalObj.tlb
type library and tell Make to skip
- the MIDL compiling stage.
-
ExternalObj.idl
as
- that included in the source tree.
- CodeSnip.exe
into the resource file editor (Use
- File | Open in XN Resource Editor). You need to
- find the TYPELIB resource type. There should only be one, language
- neutral, TYPELIB resource. Select this and export it as
- ExternalObj.tlb
in the Bin
folder in your
- configured source tree. (Use Resource | Export Resource in XN
- Resource Editor).
-
- If you are working on the latest development tree from the code repository
- you should get ExternalObj.tlb
from the latest release of
- CodeSnip, unless ExternalObj.idl
- has been changed since the last release. In this case you
- must use MIDL to build the .idl
file, because
- a suitable .tlb
file won't be available.
-
- You can edit the type library from the Delphi IDE. Start the IDE, select
- File | Open, change the file type to Type Library and navigate to
- ExternalObj.tlb
. This opens the type library. Edit as required
- then save the changes. Delete any *_TLB
files that appear.
-
- If you do make changes you should also use the type library editor's
- Export to IDL button to save a copy of the IDL in
- ExternalObj.idl
in the Src
folder. The license in
- the original code must be restored, so take a copy of the license from
- ExternalObj.idl
before overwriting it!
-
- You must regenerate the associated Pascal file. Do this by running: -
- -> Make autogen
-
-
- You now need to prevent Make from trying to compile the .idl
- file in the absence of MIDL. Do this by defining an environment variable
- called IGNOREMIDL
. This can be done from the command line or
- a batch file by doing:
-
-> set IGNOREMIDL=1
-
-
- Alternatively, call Make with the -DIGNOREMIDL
switch.
-
CodeSnip-p.exe
-
- If you are building without MIDL, and have a suitable copy of
- ExternalObj.tlb
already in the Bin
directory you
- must either have defined the IGNOREMIDL
environment variable or
- you must do:
-
> Make -DIGNOREMIDL codesnip
-
-- This is the same as doing: -
- -> Make -DIGNOREMIDL typelib -> Make resources -> Make autogen -> Make pascal-
> Make exes
-
- Make exes
will require the use of the -DIGNOREMIDL
- switch if MIDL is not available.
-
Once you have built all the required files you build the setup file by doing: @@ -1088,12 +895,6 @@
- Warning: You should not run this command if MIDL is not
- available since Make config
will delete any .tlb
- file you may have placed in the Bin
directory.
-
The supported compilers are the Win32 Delphi compilers from Delphi 2 to - Delphi XE8 and Free Pascal. + Delphi 10 Seattle and Free Pascal.
CodeSnip can automatically detect the presence of Win 32 Delphi - compilers from versions 2 to XE8. Click the Detect Delphi + compilers from Delphi 2 to Delphi 10 Seattle. Click the Detect Delphi Compilers button to do this. Any supported installed version of Delphi will be recorded. This can save considerable time and avoid errors. diff --git a/Src/Makefile b/Src/Makefile index 32b047f78..26d7d7c6b 100644 --- a/Src/Makefile +++ b/Src/Makefile @@ -2,7 +2,7 @@ # v. 2.0. If a copy of the MPL was not distributed with this file, You can # obtain one at http://mozilla.org/MPL/2.0/ # -# Copyright (C) 2009-2014, Peter Johnson (www.delphidabbler.com). +# Copyright (C) 2009-2015, Peter Johnson (www.delphidabbler.com). # # $Rev$ # $Date$ @@ -32,6 +32,8 @@ DELPHIROOT = $(DELPHIXE) TLIBIMP = "$(DELPHIROOT)\Bin\TLibImp.exe" +GENTLB = "$(DELPHIROOT)\Bin\GenTLB.exe" + MAKE = "$(MAKEDIR)\Make.exe" -$(MAKEFLAGS) DCC32 = "$(DELPHIROOT)\Bin\DCC32.exe" @@ -71,18 +73,6 @@ ZIP = "$(ZIPROOT)\Zip.exe" ZIP = Zip.exe !endif -!ifndef IGNOREMIDL -!ifdef MSSDK -MIDL = "$(MSSDK)\Bin\MIDL.exe" -!else -# MSSDK is required -!error MSSDK environment variable required. -!endif -!else -# MIDL.exe can be ignored if IGNOREMIDL macro is defined: replace with echo -MIDL = @echo *** IGNORING MIDL -!endif - # Command line options !ifdef PORTABLE DELPHIDEFINES = "-DPORTABLE" @@ -165,7 +155,7 @@ HTML.res: HTML.hrc # Compiles type library from IDL typelib: - @$(MIDL) .\ExternalObj.idl /tlb $(BIN)\ExternalObj.tlb /I "$(MSSDK)\Include" + @$(GENTLB) .\ExternalObj.ridl -D$(BIN) -TExternalObj.tlb # Builds setup program setup: diff --git a/Src/UXMLDocConsts.pas b/Src/UXMLDocConsts.pas index f6f06e1cd..8fc039a68 100644 --- a/Src/UXMLDocConsts.pas +++ b/Src/UXMLDocConsts.pas @@ -74,7 +74,7 @@ interface 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd2005', 'd2006', 'd2007', 'd2009', 'd2010', 'dXE', 'dXE2', 'dXE3', 'dDX4' {error, but in use}, - 'dXE5', 'dXE6', 'dXE7', 'dXE8', + 'dXE5', 'dXE6', 'dXE7', 'dXE8', 'd10s', 'fpc' ); diff --git a/Src/VCodeSnip.vi b/Src/VCodeSnip.vi index dcaa8f364..7a21d0ad7 100644 --- a/Src/VCodeSnip.vi +++ b/Src/VCodeSnip.vi @@ -11,8 +11,8 @@ [Fixed File Info] -File Version #=4, 12, 0, 250 -Product Version #=4, 12, 0, 0 +File Version #=4, 13, 0, 251 +Product Version #=4, 13, 0, 0 File OS=4 File Type=1 File Sub-Type=0 diff --git a/Src/VCodeSnipPortable.vi b/Src/VCodeSnipPortable.vi index af3b371bc..cfe5e2139 100644 --- a/Src/VCodeSnipPortable.vi +++ b/Src/VCodeSnipPortable.vi @@ -11,8 +11,8 @@ [Fixed File Info] -File Version #=4, 12, 0, 250 -Product Version #=4, 12, 0, 0 +File Version #=4, 13, 0, 251 +Product Version #=4, 13, 0, 0 File OS=4 File Type=1 File Sub-Type=0