mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-10-31 18:47:02 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			184 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			184 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| Notes on setting up the windows development environment
 | |
| ========================================================
 | |
| 
 | |
| Set CMAKE_PREFIX_PATH to C:\cygwin\home\kovid\sw
 | |
| 
 | |
| jpeg-7
 | |
| -------
 | |
| 
 | |
| Copy 
 | |
| jconfig.vc to jconfig.h, makejsln.vc9 to jpeg.sln,
 | |
| makeasln.vc9 to apps.sln, makejvcp.vc9 to jpeg.vcproj,
 | |
| makecvcp.vc9 to cjpeg.vcproj, makedvcp.vc9 to djpeg.vcproj,
 | |
| maketvcp.vc9 to jpegtran.vcproj, makervcp.vc9 to rdjpgcom.vcproj, and
 | |
| makewvcp.vc9 to wrjpgcom.vcproj.  (Note that the renaming is critical!)
 | |
| 
 | |
| Load jpeg.sln in Visual Studio
 | |
| 
 | |
| Goto Project->Properties->General Properties and change Configuration Type to dll
 | |
| 
 | |
| Add 
 | |
| 
 | |
| #define USE_WINDOWS_MESSAGEBOX
 | |
| 
 | |
| to jconfig.h (this will cause error messages to show up in a box)
 | |
| 
 | |
| Change the definitions of GLOBAL and EXTERN in jmorecfg.h to
 | |
| #define GLOBAL(type)        __declspec(dllexport) type
 | |
| #define EXTERN(type)        extern __declspec(dllexport) type
 | |
| 
 | |
| cp build/jpeg-7/Release/jpeg.dll bin/
 | |
| cp build/jpeg-7/Release/jpeg.lib build/jpeg-7/Release/jpeg.exp
 | |
| cp build/jpeg-7/jerror.h build/jpeg-7/jpeglib.h build/jpeg-7/jconfig.h build/jpeg-7/jmorecfg.h include/
 | |
| 
 | |
| zlib
 | |
| ------
 | |
| 
 | |
| nmake -f win32/Makefile.msc
 | |
| nmake -f win32/Makefile.msc test
 | |
| 
 | |
| cp zlib1.dll* ../../bin
 | |
| cp zlib.lib zdll.* ../../lib
 | |
| cp zconf.h zlib.h ../../include
 | |
| 
 | |
| 
 | |
| libpng
 | |
| ---------
 | |
| 
 | |
| cp scripts/CMakelists.txt .
 | |
| mkdir build
 | |
| Run cmake-gui.exe with source directory . and build directory build
 | |
| You will have to point to sw/lib/zdll.lib and sw/include for zlib
 | |
| Also disable PNG_NO_STDIO and PNG_NO_CONSOLE_IO
 | |
| 
 | |
| Now open PNG.sln in VS2008
 | |
| Set Build type to Release
 | |
| 
 | |
| cp build/libpng-1.2.40/build/Release/libpng12.dll bin/
 | |
| cp build/libpng-1.2.40/build/Release/png12.* lib/
 | |
| cp build/libpng-1.2.40/png.h build/libpng-1.2.40/pngconf.h include/
 | |
| 
 | |
| freetype
 | |
| -----------
 | |
| 
 | |
| Edit *all copies* of the file ftoption.h and add to generate a .lib
 | |
| and a correct dll
 | |
| 
 | |
| #define FT_EXPORT(return_type) __declspec(dllexport) return_type 
 | |
| #define FT_EXPORT_DEF(return_type) __declspec(dllexport) return_type
 | |
| 
 | |
| 
 | |
| VS 2008 .sln file is present, open it
 | |
| 
 | |
| Change active build type to release mutithreaded
 | |
| 
 | |
| Project->Properties->Configuration Properties 
 | |
| change configuration type to dll
 | |
| 
 | |
| cp build/freetype-2.3.9/objs/release_mt/freetype.dll bin/
 | |
| 
 | |
| Now change configuration back to static for .lib
 | |
| cp build/freetype-2.3.9/objs/win32/vc2008/freetype239MT.lib lib/
 | |
| cp -rf build/freetype-2.3.9/include/* include/
 | |
| 
 | |
| expat
 | |
| --------
 | |
| 
 | |
| Has a VC 6 project file expat.dsw
 | |
| 
 | |
| Set active build to Relase and change build type to dll
 | |
| 
 | |
| cp build/expat-2.0.1/win32/bin/Release/*.lib lib/
 | |
| cp build/expat-2.0.1/win32/bin/Release/*.exp lib/
 | |
| cp build/expat-2.0.1/win32/bin/Release/*.dll bin/
 | |
| cp build/expat-2.0.1/lib/expat.h build/expat-2.0.1/lib/expat_external.h include/
 | |
| 
 | |
| libxml2
 | |
| -------------
 | |
| 
 | |
| cd win32
 | |
| cscript configure.js include=C:\cygwin\home\kovid\sw\include lib=C:\cygwin\home\sw\lib prefix=C:\cygwin\home\kovid\sw zlib=yes iconv=no
 | |
| nmake /f Makefile.msvc
 | |
| nmake /f Makefile.msvc install
 | |
| mv lib/libxml2.dll bin/
 | |
| cp ./build/libxml2-2.7.5/win32/bin.msvc/*.manifest bin/
 | |
| 
 | |
| kdewin32-msvc
 | |
| ----------------
 | |
| 
 | |
| Get it from http://www.winkde.org/pub/kde/ports/win32/repository/kdesupport/
 | |
| mkdir build
 | |
| Run cmake
 | |
| 
 | |
| Set build type to release and configuration to dll
 | |
| 
 | |
| Build
 | |
| 
 | |
| cp build/kdewin32-msvc-0.3.9/build/include/* include/
 | |
| cp build/kdewin32-msvc-0.3.9/build/bin/Release/*.dll bin/
 | |
| cp build/kdewin32-msvc-0.3.9/build/bin/Release/*.lib lib/
 | |
| cp build/kdewin32-msvc-0.3.9/build/bin/Release/*.exp lib/
 | |
| cp -r build/kdewin32-msvc-0.3.9/include/msvc/ include/
 | |
| cp build/kdewin32-msvc-0.3.9/include/*.h include/
 | |
| 
 | |
| fontconfig
 | |
| ---------------
 | |
| 
 | |
| Get it from http://www.winkde.org/pub/kde/ports/win32/repository/win32libs/
 | |
| mkdir build
 | |
| Remove subdirectory test from the bottom of CMakeLists.txt
 | |
| run cmake
 | |
| 
 | |
| Set build type to release and project config to dll
 | |
| Right click on the fontconfig project and select properties. Add sw/include/msvc to the include paths
 | |
| Build only fontconfig
 | |
| 
 | |
| cp build/fontconfig-msvc-2.4.2-3/build/src/Release/*.dll bin
 | |
| cp build/fontconfig-msvc-2.4.2-3/build/src/Release/*.lib lib
 | |
| cp build/fontconfig-msvc-2.4.2-3/build/src/Release/*.exp lib
 | |
| cp -r build/fontconfig-msvc-2.4.2-3/fontconfig/ include/
 | |
| 
 | |
| Also install the etc files from the font-config-bin archive from kde win32libs
 | |
| It contains correct fonts.conf etc.
 | |
| 
 | |
| 
 | |
| poppler
 | |
| -------------
 | |
| 
 | |
| In Cmake: disable GTK, Qt, OPenjpeg, zlib, lcms, gtk_tests, qt_tests. Enable qt4, jpeg, png and zlib
 | |
| 
 | |
| NOTE: poppler must be built as a static library, unless you build the qt4 bindings
 | |
| 
 | |
| Now do the same for the pdftohtml project
 | |
| 
 | |
| cp poppler/*.h ~/sw/include/poppler && cp goo/*.h ~/sw/include/poppler/goo && cp splash/*.h ~/sw/include/poppler/splash && cp build/Release/poppler.lib ../../lib/ && cp build/utils/Release/*.exe ../../bin/
 | |
| 
 | |
| 
 | |
| podofo
 | |
| ----------
 | |
| 
 | |
| Add the following three lines near the top of CMakeLists.txt
 | |
| SET(WANT_LIB64 FALSE)
 | |
| SET(PODOFO_BUILD_SHARED TRUE)
 | |
| SET(PODOFO_BUILD_STATIC FALSE)
 | |
| 
 | |
| cp build/podofo-0.7.0/build/src/Release/podofo.dll bin/
 | |
| cp build/podofo-0.7.0/build/src/Release/podofo.lib lib/
 | |
| cp build/podofo-0.7.0/build/src/Release/podofo.exp lib/
 | |
| 
 | |
| ImageMagick
 | |
| --------------
 | |
| 
 | |
| Edit VisualMagick/configure/configure.cpp to set
 | |
| 
 | |
| int projectType = MULTITHREADEDDLL;
 | |
| 
 | |
| Run configure.bat ina  visual studio command prompt
 | |
| 
 | |
| Edit magick/magick-config.h
 | |
| 
 | |
| Undefine ProvideDllMain and MAGICKCORE_X11_DELEGATE
 | |
| 
 | |
| Now open VisualMagick/VisualDynamicMT.sln set to Release
 | |
| Remove the CORE_xlib project
 |