Browse Source

+ unify DLL export defines to namespace names

git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5000 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
master
wmayer 8 years ago
commit
120ca87015
100 changed files with 31644 additions and 0 deletions
  1. 21
    0
      BuildAll.bat
  2. 19
    0
      BuildRelease.ini
  3. 342
    0
      BuildRelease.py
  4. 462
    0
      CMakeLists.txt
  5. 908
    0
      ChangeLog.txt
  6. 40
    0
      Makefile.am
  7. 93
    0
      README.Cygwin
  8. 114
    0
      README.Linux
  9. 302
    0
      README.MinGW
  10. 85
    0
      README.Win32
  11. 502
    0
      acinclude.m4
  12. 64
    0
      autogen.sh
  13. 8
    0
      build.sh
  14. 65
    0
      cMake/ConfigureChecks.cmake
  15. 90
    0
      cMake/FindCoin3D.cmake
  16. 87
    0
      cMake/FindCoin3DDoc.cmake
  17. 76
    0
      cMake/FindEigen2.cmake
  18. 81
    0
      cMake/FindEigen3.cmake
  19. 39
    0
      cMake/FindF2C.cmake
  20. 58
    0
      cMake/FindKDL.cmake
  21. 80
    0
      cMake/FindODE.cmake
  22. 249
    0
      cMake/FindOpenCV.cmake
  23. 83
    0
      cMake/FindOpenCasCade.cmake
  24. 38
    0
      cMake/FindSMESH.cmake
  25. 115
    0
      cMake/FindSoQt.cmake
  26. 35
    0
      cMake/FindSpnav.cmake
  27. 164
    0
      cMake/FindWix.cmake
  28. 48
    0
      cMake/FindXercesC.cmake
  29. 317
    0
      cMake/FreeCadMacros.cmake
  30. 307
    0
      cMake/UseLibPack6x.cmake
  31. 323
    0
      cMake/UseLibPack7x.cmake
  32. 349
    0
      cMake/UseLibPackCustom.cmake
  33. 145
    0
      config.h.cmake
  34. 1063
    0
      configure.ac
  35. 486
    0
      copying.lib
  36. 1
    0
      data/CMakeLists.txt
  37. 25
    0
      data/License.txt
  38. 11
    0
      data/Makefile.am
  39. 21
    0
      data/examples/CMakeLists.txt
  40. BIN
      data/examples/DrawingExample.FCStd
  41. BIN
      data/examples/EngineBlock.FCStd
  42. 14
    0
      data/examples/Makefile.am
  43. BIN
      data/examples/PartDesignExample.FCStd
  44. BIN
      data/examples/RobotExample.FCStd
  45. 11782
    0
      data/examples/Schenkel.stp
  46. 111
    0
      mkinstalldirs
  47. 227
    0
      package/debian/changelog
  48. 1
    0
      package/debian/compat
  49. 66
    0
      package/debian/control
  50. 275
    0
      package/debian/copyright
  51. 1037
    0
      package/debian/diff/freecad_gutsy.diff
  52. 1027
    0
      package/debian/diff/freecad_hardy.diff
  53. 997
    0
      package/debian/diff/freecad_intrepid.diff
  54. 997
    0
      package/debian/diff/freecad_jaunty.diff
  55. 736
    0
      package/debian/diff/freecad_karmic.diff
  56. 892
    0
      package/debian/diff/freecad_lucid.diff
  57. 740
    0
      package/debian/diff/freecad_maverick.diff
  58. 886
    0
      package/debian/diff/freecad_natty.diff
  59. 682
    0
      package/debian/diff/freecad_testing.diff
  60. 207
    0
      package/debian/diff/pivy_0.3.0-1.diff
  61. 181
    0
      package/debian/diff/pythonocc_0.2.0-1.diff
  62. 179
    0
      package/debian/diff/pythonocc_0.3.0-1.diff
  63. 299
    0
      package/debian/diff/salomegeom_4.1.4-5.diff
  64. 307
    0
      package/debian/diff/salomegeom_5.1.1-6.diff
  65. 9
    0
      package/debian/fcstd-thumbnailer.desktop
  66. 18
    0
      package/debian/freecad-doc.doc-base
  67. 73
    0
      package/debian/freecad.1
  68. 18
    0
      package/debian/freecad.desktop
  69. 3
    0
      package/debian/freecad.links
  70. 8
    0
      package/debian/freecad.sharedmimeinfo
  71. 6
    0
      package/debian/menu
  72. 31
    0
      package/debian/mime/freecad-thumbnailer
  73. 20
    0
      package/debian/mime/freecad-thumbnailer.1
  74. 30
    0
      package/debian/mime/freecad.schemas
  75. 78
    0
      package/debian/occ-with-libs.patch
  76. 33
    0
      package/debian/patch/debian_testing.patch
  77. 25
    0
      package/debian/patch/ubuntu_intrepid.patch
  78. 25
    0
      package/debian/patch/ubuntu_jaunty.patch
  79. 40
    0
      package/debian/postinst.ex
  80. 33
    0
      package/debian/prerm.ex
  81. 134
    0
      package/debian/rules
  82. 2
    0
      package/debian/shlibs.local
  83. 1
    0
      package/debian/source/format
  84. 3
    0
      package/debian/source/lintian-overrides
  85. 2
    0
      package/debian/watch
  86. 98
    0
      package/makedebian.sh
  87. 49
    0
      package/makepkg
  88. 1
    0
      src/3rdParty/ANN/CMakeLists.txt
  89. 47
    0
      src/3rdParty/ANN/Copyright.txt
  90. 450
    0
      src/3rdParty/ANN/License.txt
  91. 46
    0
      src/3rdParty/ANN/MS_Win32/Ann.sln
  92. 53
    0
      src/3rdParty/ANN/MS_Win32/Makefile
  93. 134
    0
      src/3rdParty/ANN/MS_Win32/ann2fig/ann2fig.vcproj.7.10.old
  94. 452
    0
      src/3rdParty/ANN/MS_Win32/dll/dll.vcproj.7.10.old
  95. 194
    0
      src/3rdParty/ANN/MS_Win32/sample/sample.vcproj.7.10.old
  96. 220
    0
      src/3rdParty/ANN/MS_Win32/test/test.vcproj.7.10.old
  97. 194
    0
      src/3rdParty/ANN/Make-config
  98. 68
    0
      src/3rdParty/ANN/ReadMe.txt
  99. 87
    0
      src/3rdParty/ANN/ann2fig/Makefile
  100. 0
    0
      src/3rdParty/ANN/ann2fig/ann2fig.cpp

+ 21
- 0
BuildAll.bat View File

@@ -0,0 +1,21 @@
@echo off
rem Build script, uses vcbuild to completetly build FreeCAD
rem start again nice (LOW)
if "%1"=="" (
start /WAIT /LOW /B cmd.exe /V /C %~s0 go_ahead
goto:eof
)
rem set the aprobiated Variables here or outside in the system
if NOT DEFINED VCDIR set VCDIR=C:\Program Files\Microsoft Visual Studio 9.0
rem Register VS Build programms
call "%VCDIR%\VC\vcvarsall.bat"
rem "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:"C:\SW_Projects\CAD\FreeCAD_10" /closeonend:3
rem Start the Visuall Studio build process
"%VCDIR%\VC\vcpackages\vcbuild.exe" FreeCAD_trunk.sln "Debug|Win32"
"%VCDIR%\VC\vcpackages\vcbuild.exe" FreeCAD_trunk.sln "Debug|Win32"
"%VCDIR%\VC\vcpackages\vcbuild.exe" FreeCAD_trunk.sln "Release|Win32"

+ 19
- 0
BuildRelease.ini View File

@@ -0,0 +1,19 @@
# Version of the release. The Revision number you must specify at the command line
[Version]
Major: 0
Minor: 7
Alias: Bespin
Url: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk
# Here comes the paths of the needed tools to build a release
# the path can be simple or as full path. Depends if you have your tool in PATH
[Tools]
svn: C:\Program Files (x86)\Subversion\svn.exe
wget: C:\Libs\FreeCADLibs\FreeCADLibs6.2\bin\wget.exe
candle: C:\Libs\Libs\wix_30\candle.exe
light: C:\Libs\Libs\wix_30\light.exe
hhc: C:\Program Files (x86)\HTML Help Workshop\hhc.exe
# needet until the build is completely done with cMake
[Libs] # Libs used in the build
FreecadLib: C:\Libs\FreeCADLibs\FreeCADLibs6.2

+ 342
- 0
BuildRelease.py View File

@@ -0,0 +1,342 @@
#! python
# -*- coding: utf-8 -*-
# (c) 2007 Jürgen Riegel GPL
Usage = """BuildRelease - Build script to build a complete FreeCAD release
Usage:
BuildRelease [Optionen] ReleaseNbr
Options:
-h, --help print this help
-b, --buildPath specify the output path where the build takes place
-i, --ini-file specify the ini file to use
This script will build a complete FreeCAD distribution which includes:
* Check out fresh source
* packing source
* Set the Version and Release numbers
* Gathering change log
* completele build FreeCAD
* run tests
* build source docu
* build user docu
* build installer
* upload to source forge
On failure of one of these steps the script will stop.
Each step writes tones of info in the log file.
There is one error log file.
Autor:
(c) 2007 Juergen Riegel
juergen.riegel@web.de
Licence: GPL
Version:
0.1
"""
#
# Its inteded only to used by the maintainer
import os, sys, getopt
from subprocess import call,Popen,PIPE
from time import sleep
from zipfile import ZipFile,ZIP_DEFLATED
import tarfile
from string import find
import ConfigParser
import time
# global information
Release = 0
Major = 0
Minor = 7
Alias = ""
FileName = ""
BuildPath = "D:/ReleaseBuilds"
Log = None
ErrLog = None
Config = None
def CallProcess(args,Msg,ret=True):
Anim = ['-','\\','|','/']
sys.stdout.write(Msg+': ')
Log.write("====== Call: " + args[0] + '\n')
SVN = Popen(args,
stdout=PIPE, stderr = ErrLog)
i = 0
while(SVN.poll() == None):
line = SVN.stdout.readline()
if(line):
Log.write(line.replace('\n',''))
sys.stdout.write(chr(8) + Anim[i%4])
i+=1
sleep(0.2)
#ErrLog.write(SVN.stdout.read())
sys.stdout.write(chr(8) + "done\n")
if(not SVN.returncode == 0 and ret):
print "Process returns: ",SVN.returncode
raise
# Step 2 & 3
def CheckOut():
CallProcess([Config.get('Tools','svn'),
"checkout",
"-r",
`Release`,
"https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk",
"../"+FileName],
"2) Checking out")
sys.stdout.write('3) Write version files: ')
Version = open("src/Build/Version.h","w")
Version.write('#define FCVersionMajor "' + `Major` + '"\n')
Version.write('#define FCVersionMinor "' + `Minor` + '"\n')
Version.write('#define FCVersionName "' + Alias + '"\n')
Version.write('#define FCRevision "' + `Release` + '"\n')
Version.write('#define FCRepositoryURL "' + "https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk/src" + '"\n')
Version.write('#define FCCurrentDateT "'+time.asctime()+'" \n')
Version.close()
Version = open("installer/Version.wxi","w")
Version.write('<Include> \n')
Version.write(' <?define FCVersionMajor = ' + `Major` + ' ?>\n')
Version.write(' <?define FCVersionMinor = ' + `Minor` + ' ?>\n')
Version.write(' <?define FCVersionRevision =' + `Release` + ' ?>\n')
Version.write(' <?define FCVersionAlias = "' + Alias + '" ?>\n')
Version.write('</Include> \n')
Version.close()
sys.stdout.write('done\n')
#Step 4
def PackSourceZip():
def addAll(dirFrom, ZipSrcFile):
for file in os.listdir(dirFrom): # for files/dirs here
if(not file==".svn" and not file== FileName+'_source.zip'):
pathFrom = os.path.join(dirFrom, file)
if not os.path.isdir(pathFrom): # copy simple files
ZipSrcFile.write(pathFrom,pathFrom.replace('.\\',FileName+'\\'))
Log.write("Insert: "+ pathFrom + '\n')
else:
addAll(pathFrom,ZipSrcFile)
sys.stdout.write("4) Pack zip source files: ")
SourceFile = ZipFile(FileName+'_source.zip','w',ZIP_DEFLATED,True)
addAll('.',SourceFile)
SourceFile.close()
sys.stdout.write("done \n")
# Step 5
def PackSourceTar():
def addAll(dirFrom, ZipTarFile):
for file in os.listdir(dirFrom): # for files/dirs here
if(not file==".svn" and not file== FileName+'_source.zip'):
pathFrom = os.path.join(dirFrom, file)
if not os.path.isdir(pathFrom): # copy simple files
ZipTarFile.add(pathFrom,pathFrom.replace('.\\',FileName+'\\'))
Log.write("Insert: "+ pathFrom + '\n')
else:
addAll(pathFrom,ZipTarFile)
sys.stdout.write("5) Pack tar source files: ")
SourceFile = tarfile.open(FileName+'_source.tgz','w:gz')
addAll('.',SourceFile)
SourceFile.close()
sys.stdout.write("done \n")
# Step 6 & 7
def BuildAll():
import fcbt.FileTools
LibPack = Config.get('Libs','FreeCADLib')
sys.stdout.write('6) Copy resources: ')
os.mkdir('./bin')
fcbt.FileTools.cpall(LibPack + '/bin','./bin')
os.mkdir('./include')
fcbt.FileTools.cpall(LibPack + '/include','./include')
os.mkdir('./lib')
fcbt.FileTools.cpall(LibPack + '/lib','./lib')
os.mkdir('./doc')
fcbt.FileTools.cpall(LibPack + '/doc','./doc')
sys.stdout.write('done\n')
CallProcess(["BuildAll.bat"],
"7) Build all")
# Step 8 & 9
def HelpFile():
import wiki2chm
if not os.path.isdir('doc'):
os.mkdir('doc')
if not os.path.isdir('doc/tmp'):
os.mkdir('doc/tmp')
CallProcess([Config.get('Tools','wget'),'-k', '-r', '-l5', '-P', 'doc/tmp', '-nd',
'-R', '*action=*',
'-R', '*title=Special*',
'-R', '*title=Talk*',
'-R', '*oldid=*',
'-R', '*printable=yes*',
'--domains=apps.sourceforge.net',
'--append-output=doc/tmp/wget.log',
'http://apps.sourceforge.net/mediawiki/free-cad/index.php?title=Online_Help_Toc'],
"8) Download docu")
sys.stdout.write("9) Fix up CSS: ")
open('doc/tmp/chm.css','w').write(open('src/Tools/chm.css').read())
wiki2chm.WikiBaseUrl ='http://apps.sourceforge.net/mediawiki/free-cad/'
wiki2chm.TocPageName ='Online_Help_Toc'
wiki2chm.BasePath ='doc/tmp/'
wiki2chm.Output = Log
wiki2chm.replaceCSS()
wiki2chm.WriteProject()
wiki2chm.readToc()
sys.stdout.write("done \n")
# Step 10
def CompileHelp():
import fcbt.FileTools
CallProcess([Config.get('Tools','hhc'),'doc/tmp/Online_Help_Toc.hhp'],'10)Compile help:',False)
fcbt.FileTools.cpfile('doc/tmp/FreeCAD.chm','doc/FreeCAD.chm')
fcbt.FileTools.cpfile('doc/tmp/FreeCAD.chm',FileName+'_helpfile.chm')
def BuildInstaller():
import fcbt.FileTools
LibPack = Config.get('Libs','FreeCADLib')
fcbt.FileTools.cpfile('lib/Microsoft_VC80_CRT_x86.msm','installer/Microsoft_VC80_CRT_x86.msm')
fcbt.FileTools.cpfile('lib/policy_8_0_Microsoft_VC80_CRT_x86.msm','installer/policy_8_0_Microsoft_VC80_CRT_x86.msm')
CallProcess([Config.get('Tools','candle'),
'-out', 'installer\\',
'installer\\FreeCAD.wxs',
'installer\\FreeCADBase.wxs',
'installer\\LibPack.wxs',
'installer\\FreeCADDoc.wxs',
'installer\\FreeCADModules.wxs',
],'11)Compile installer:',False)
CallProcess([Config.get('Tools','light'),
'-ext', 'WixUIExtension',
'-cultures:en-us',
'-out', 'installer\\FreeCAD.msi',
'installer\\FreeCAD.wixobj',
'installer\\FreeCADBase.wixobj',
'installer\\LibPack.wixobj',
'installer\\FreeCADDoc.wixobj',
'installer\\FreeCADModules.wixobj',
],'12)Build installer:',False)
fcbt.FileTools.cpfile('installer/FreeCAD.msi',FileName+'_installer.msi')
def SendFTP():
from ftplib import FTP
ftp = FTP('upload.sf.net')
Log.write(ftp.login() + '\n')
Log.write(ftp.cwd("/incoming") + '\n')
Log.write(ftp.sendcmd('PASV') + '\n')
Log.write(ftp.sendcmd('TYPE I') + '\n')
sys.stdout.write('13) Send source ZIP: ')
f = open(FileName+'_source.zip', "r")
Log.write(ftp.storbinary('STOR '+ FileName+'_source.zip', f) + '\n')
sys.stdout.write('done\n14) Send source tgz: ')
f = open(FileName+'_source.tgz', "r")
Log.write(ftp.storbinary('STOR '+ FileName+'_source.tgz', f) + '\n')
sys.stdout.write('done\n15) Send installer: ')
f = open(FileName+'_installer.msi', "r")
Log.write(ftp.storbinary('STOR '+ FileName+'_installer.msi', f) + '\n')
f.close()
ftp.close()
def main():
global Release, Major, Minor, Alias, FileName, BuildPath, Log, ErrLog, Config
IniFile = "BuildRelease.ini"
try:
opts, args = getopt.getopt(sys.argv[1:], "hb:", ["help","buildPath="])
except getopt.GetoptError:
# print help information and exit:
sys.stderr.write(Usage)
sys.exit(2)
# checking on the options
for o, a in opts:
if o in ("-h", "--help"):
sys.stderr.write(Usage)
sys.exit()
if o in ("-b", "--buildPath"):
BuildPath = a
if o in ("-i", "--ini-file"):
IniFile = a
# runing through the files
if (not len(args) == 1):
sys.stderr.write(Usage)
Release = int(args[0])
Config = ConfigParser.ConfigParser()
Config.readfp(open(IniFile))
Alias = Config.get('Version','Alias')
Major = Config.getint('Version','Major')
Minor = Config.getint('Version','Minor')
# creating the directory and switch to
FileName = 'FreeCAD_' + `Major` + '.' + `Minor` + '.' + `Release`
print "=== Building:", FileName, '\n'
BuildPath = BuildPath + '/' + FileName
# set tool path
sys.path.append((BuildPath + '/src/Tools') )
OldCwd = os.getcwd()
print "1) Creating Build directory: ", BuildPath
if not os.path.isdir(BuildPath):
os.mkdir(BuildPath)
os.chdir(BuildPath)
Log = open("BuildRelease.log","w")
ErrLog = open("BuildReleaseErrors.log","w")
try:
CheckOut()
PackSourceZip()
PackSourceTar()
BuildAll()
HelpFile()
CompileHelp()
BuildInstaller()
#SendFTP()
except:
Log.close()
ErrLog.close()
Err = open("BuildReleaseErrors.log","r")
sys.stderr.write("!!!!!!!!! Fehler aufgetreten:\n")
sys.stderr.write(Err.read())
raise
os.chdir(OldCwd)
Log.close()
ErrLog.close()
print "Press any key"
sys.stdin.readline()
if __name__ == "__main__":
main()

+ 462
- 0
CMakeLists.txt View File

@@ -0,0 +1,462 @@
project(FreeCAD_trunk)
set(FREECAD_VERSION "0.12")

# Needed for salomesmesh
if(CMAKE_COMPILER_IS_GNUCXX)
ENABLE_LANGUAGE(Fortran)
endif(CMAKE_COMPILER_IS_GNUCXX)

set(PACKAGE_NAME "FreeCAD")
set(PACKAGE_VERSION_MAJOR "0")
set(PACKAGE_VERSION_MINOR "12")
set(PACKAGE_VERSION_PATCH "2237")
set(PACKAGE_VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}")
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")

cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)

# include local modules
include(AddFileDependencies)

set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cMake")


if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)

#if(CMAKE_CFG_INTDIR STREQUAL .)
# No Debug/Release output paths
set(DEBUG_MAIN_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
set(RELEASE_MAIN_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
#else(CMAKE_CFG_INTDIR STREQUAL .)
# set(DEBUG_MAIN_OUTPUT_PATH ${CMAKE_BINARY_DIR}/src/Main/Debug)
# set(RELEASE_MAIN_OUTPUT_PATH ${CMAKE_BINARY_DIR}/src/Main/Release)
#endif(CMAKE_CFG_INTDIR STREQUAL .)

if(WIN32)
set(PLATFORM_CP xcopy /Y /S)
set(PLATFORM_MK mkdir)
else(WIN32)
set(PLATFORM_CP cp)
set(PLATFORM_MK mkdir -p)
endif(WIN32)


# ================================================================================

if(CMAKE_COMPILER_IS_GNUCXX)
include(cMake/ConfigureChecks.cmake)
configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
add_definitions(-DHAVE_CONFIG_H)
add_definitions(-Wno-write-strings)
add_definitions(-Wno-deprecated)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
endif(CMAKE_COMPILER_IS_GNUCXX)


# ================================================================================


if(WIN32)
SET(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR})
else(WIN32)
# SET(CMAKE_INSTALL_PREFIX "/usr/lib/freecad")
endif(WIN32)

# ================================================================================
# == Win32 is default behaviour use the LibPack copied in Source tree ============
if(MSVC)
OPTION(FREECAD_LIBPACK_USE "Use the LibPack to Build FreeCAD (only Win32 so far)." ON)
set(FREECAD_LIBPACK_DIR ${CMAKE_SOURCE_DIR} CACHE PATH "Directory of the FreeCAD LibPack")
else(MSVC)
OPTION(FREECAD_LIBPACK_USE "Use the LibPack to Build FreeCAD (only Win32 so far)." OFF)
set(FREECAD_LIBPACK_DIR "" CACHE PATH "Directory of the FreeCAD LibPack")
endif(MSVC)

# ================================================================================
# == All the options for the build process ============

OPTION(FREECAD_BUILD_GUI "Build FreeCAD Gui. Otherwise you have only the command line and the Python import module." ON)
OPTION(FREECAD_MAINTAINERS_BUILD "Build FreeCAD for Maintainers, with Docu and 3rd party libs. On Windows the Installer is build." OFF)
OPTION(FREECAD_BUILD_CAM "Build the FreeCAD CAM module and the needed libs, be aware, unfinished code!" OFF)
OPTION(FREECAD_BUILD_FEM "Build the FreeCAD FEM module, be aware, unfinished code!" ON)
OPTION(FREECAD_BUILD_SANDBOX "Build the FreeCAD Sandbox module which is only for testing purposes" OFF)



# ================================================================================

if(FREECAD_LIBPACK_USE)
# checking for a unique file in LibPack location to make sure the right version of the LibPack is there
find_file(FREECAD_LIBPACK_CHECKFILE6X boost_program_options-vc80-mt-gd.lib ${FREECAD_LIBPACK_DIR}/lib )
find_file(FREECAD_LIBPACK_CHECKFILE7X boost_program_options-vc90-mt-gd-1_39.lib ${FREECAD_LIBPACK_DIR}/lib )
find_file(FREECAD_LIBPACK_CHECKCUSTOM boost_program_options-vc90-mt-gd-1_41.lib ${FREECAD_LIBPACK_DIR}/lib )
IF(FREECAD_LIBPACK_CHECKFILE6X)
include(cMake/UseLibPack6x.cmake)
set(FREECAD_LIBPACK6 FOUND CACHE STRING "Displays if the libpack has been found")
set(FREECAD_LIBPACK7 NOTFOUND CACHE STRING "Displays if the libpack has been found")
MARK_AS_ADVANCED(FORCE FREECAD_LIBPACK7)
ELSEIF(FREECAD_LIBPACK_CHECKFILE7X)
include(cMake/UseLibPack7x.cmake)
set(FREECAD_LIBPACK6 NOTFOUND CACHE STRING "Displays if the libpack has been found")
MARK_AS_ADVANCED(FORCE FREECAD_LIBPACK6)
set(FREECAD_LIBPACK7 FOUND CACHE STRING "Displays if the libpack has been found")
ELSEIF(FREECAD_LIBPACK_CHECKCUSTOM)
include(cMake/UseLibPackCustom.cmake)
set(FREECAD_LIBPACKX FOUND CACHE STRING "Displays if the libpack has been found")
ELSE(FREECAD_LIBPACK_CHECKFILE6X)
MARK_AS_ADVANCED(FORCE FREECAD_LIBPACK_CHECKFILE6X FREECAD_LIBPACK_CHECKFILE7X)
message(SEND_ERROR "Could not find neither LibPack 6.x nor 7.x in specified location:" ${FREECAD_LIBPACK_DIR})
ENDIF(FREECAD_LIBPACK_CHECKFILE6X)

# -------------------------------- Swig ----------------------------------

find_package(SWIG)

IF(NOT SWIG_FOUND)
MESSAGE("SWIG was not found, build no SWIG binding for pivy")
ENDIF(NOT SWIG_FOUND)

else(FREECAD_LIBPACK_USE)

MARK_AS_ADVANCED(FORCE FREECAD_LIBPACK_CHECKFILE6X FREECAD_LIBPACK_CHECKFILE7X)



# ================================================================================
# == for other OSes search the packages ==========================================


# -------------------------------- Python --------------------------------


find_package(PythonLibs REQUIRED)
find_package(PythonInterp REQUIRED)

IF(NOT PYTHONLIBS_FOUND)
MESSAGE("Python not found, install python!")
ENDIF(NOT PYTHONLIBS_FOUND)



# -------------------------------- Boost --------------------------------

SET( _boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS} "1.41.0" "1.39.0" "1.38.0" "1.37.0"
"1.36.1" "1.36.0" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0" "1.34"
"1.33.1" "1.33.0" "1.33" )

find_package(Boost COMPONENTS filesystem program_options regex signals system thread REQUIRED)

# -------------------------------- XercesC --------------------------------

find_package(XercesC REQUIRED)

# -------------------------------- ZLIB --------------------------------

find_package(ZLIB REQUIRED)

# -------------------------------- OpenCasCade --------------------------------

#first, look for OpenCASCADE Community Edition (OCE)
#if OCE is installed in a nonstandard location, add -DOCE_DIR=/path/to/dir/containing/OCEConfig.cmake
# when configuring with cmake, i.e. cmake .. -DOCE_DIR=/usr/share/cmake
if( NOT DEFINED OCE_DIR )
if( UNIX )
set( OCE_DIR "/usr/local/share/cmake/" )
else()
set( OCE_DIR "c:/OCE-0.4.0/share/cmake" )
endif()
endif()
find_package ( OCE )
if( ${OCE_FOUND} )
message("-- OpenCASCADE Community Edition has been found.")
add_definitions ( -DHAVE_CONFIG_H )
set( OCC_LIBRARIES "TKFillet;TKMesh;TKernel;TKG2d;TKG3d;TKMath;TKIGES;TKSTL;TKShHealing;TKXSBase;TKBool;TKBO;TKBRep;TKTopAlgo;TKGeomAlgo;TKGeomBase;TKOffset;TKPrim;TKSTEP;TKSTEPBase;TKSTEPAttr;TKHLR" ) #lib list copied from FreeCAD's FindOpenCasCade.cmake
set( OCC_INCLUDE_DIR ${OCE_INCLUDE_DIRS} )
set( OCC_FOUND ${OCE_FOUND} )
else() #look for OpenCASCADE
find_package(OpenCasCade)
IF(NOT OCC_FOUND)
MESSAGE("Neither OpenCASCADE Community Edition nor OpenCasCade were found: will not build CAD modules!")
ELSE()
MESSAGE("-- OpenCASCADE include directory: ${OCC_INCLUDE_PATH}")
MESSAGE("-- OpenCASCADE shared libraries directory: ${OCC_LIB_PATH}")
ENDIF()
endif()

# -------------------------------- f2c ----------------------------------

IF(OCC_FOUND)
find_package(F2C REQUIRED)
ENDIF(OCC_FOUND)
# -------------------------------- Salome SMESH --------------------------

# Salome SMESH sources are under src/3rdParty now
IF(OCC_FOUND)
set(SMESH_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc)
set(SMESH_LIBRARIES
StdMeshers
#MEFISTO2
SMESH
DriverUNV
SMESHDS
DriverSTL
DriverDAT
Driver
SMDS
)
set(SMESH_FOUND TRUE)
ENDIF(OCC_FOUND)
#find_package(SMESH)
#IF(NOT SMESH_FOUND)
# MESSAGE("Salome SMESH was not found!")
#ENDIF(NOT SMESH_FOUND)

# -------------------------------- OpenCV --------------------------------

# not needed at the moment
#find_package(OpenCV REQUIRED)

# -------------------------------- Swig ----------------------------------

find_package(SWIG)

IF(NOT SWIG_FOUND)
MESSAGE("SWIG was not found, build no SWIG binding for pivy")
ENDIF(NOT SWIG_FOUND)

# -------------------------------- Eigen --------------------------------

#find_package(Eigen2)
find_package(Eigen3)

# -------------------------------- ODE ----------------------------------

find_package(ODE)
# -------------------------------- Qt --------------------------------

# sets ${QT_LIBRARIES}

SET(QT_MIN_VERSION 4.1.4)
set(QT_USE_QTNETWORK TRUE)
set(QT_USE_QTXML TRUE)
if(FREECAD_BUILD_GUI)
set(QT_USE_QTOPENGL TRUE)
set(QT_USE_QTSVG TRUE)
set(QT_USE_QTUITOOLS TRUE)
set(QT_USE_QTWEBKIT TRUE)
endif(FREECAD_BUILD_GUI)
find_package(Qt4)

include(${QT_USE_FILE})

IF(NOT QT4_FOUND)
MESSAGE("Library qt-4.3 or above is not available, install QT or FreeCAD Gui version will not be built")
ENDIF(NOT QT4_FOUND)

IF(NOT QT_QTWEBKIT_FOUND)
MESSAGE("QT Webkit not found, will not build browser integration!")
ENDIF(NOT QT_QTWEBKIT_FOUND)


# This is a special version of the built in macro qt4_wrap_cpp
# It is required since moc'ed files are now included instead of being added to projects directly
# It adds a reverse dependency to solve this
# This has the unfortunate side effect that some files are always rebuilt
# There is probably a cleaner solution than this
macro(fc_wrap_cpp outfiles )
# get include dirs
QT4_GET_MOC_FLAGS(moc_includes)
QT4_EXTRACT_OPTIONS(moc_files moc_options ${ARGN})

foreach(it ${moc_files})
get_filename_component(it ${it} ABSOLUTE)
QT4_MAKE_OUTPUT_FILE(${it} moc_ cpp outfile)
QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_includes}" "${moc_options}")
set(${outfiles} ${${outfiles}} ${outfile})
add_file_dependencies(${it} ${outfile})
endforeach(it)
endmacro(fc_wrap_cpp)
if(FREECAD_BUILD_GUI)
# -------------------------------- OpenGL --------------------------------

find_package(OpenGL)



# -------------------------------- Coin3D --------------------------------

find_package(Coin3D REQUIRED)
find_package(SoQt REQUIRED)

# ------------------------------ Spaceball -------------------------------

if (WIN32)
#future
else(WIN32)
find_package(Spnav)
endif(WIN32)

# ------------------------------------------------------------------------


endif(FREECAD_BUILD_GUI)


endif(FREECAD_LIBPACK_USE)

# copy build convenient files for M$
if(WIN32)
configure_file(BuildAll.bat ${CMAKE_BINARY_DIR}/BuildAll.bat COPYONLY)
#configure_file(BuildAllNice.bat ${CMAKE_BINARY_DIR}/BuildAllNice.bat COPYONLY)
endif(WIN32)


include(cMake/FreeCadMacros.cmake)


# ================================================================================
# == Global Compiler and Linker Settings =========================================

include_directories(${CMAKE_BINARY_DIR}/src
${CMAKE_SOURCE_DIR}/src)

# check for 64-bit platform
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
MESSAGE(STATUS "Platform is 64-bit, set -D_OCC64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_OCC64")
add_definitions(-D_OCC64 )
ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8)
MESSAGE(STATUS "Platform is 32-bit")
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)



IF(MSVC)
# set default compiler settings
#SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GF /GY")
SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG")
# set default libs
SET (CMAKE_C_STANDARD_LIBRARIES "kernel32.lib user32.lib gdi32.lib winspool.lib SHFolder.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib ")
set (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES}")
# set linker flag /nodefaultlib
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NODEFAULTLIB")
SET (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB")

# Mark 32 bit executables large address aware so they can use > 2GB address space
# NOTE: This setting only has an effect on machines with at least 3GB of RAM, although it sets the linker option it doesn't set the the linker switch 'Enable Large Addresses'
IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /LARGEADDRESSAWARE")
SET (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 4)
ELSE(MSVC)
SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG")
MESSAGE(STATUS "DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}")
ENDIF(MSVC)
IF(MINGW)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthreads")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthreads")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mthreads -Wl,--export-all-symbols")
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -mthreads -Wl,--export-all-symbols")
LINK_LIBRARIES(-lgdi32)
ENDIF(MINGW)

add_subdirectory(src)
add_subdirectory(data)

# ================================================================================
# == Packaging ===================================================================
if(FREECAD_MAINTAINERS_BUILD AND NOT WIN32)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "An extensible Open Source CAx program")
set(CPACK_PACKAGE_VENDOR "FreeCAD development team")
if(WIN32)
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.Win32")
else(WIN32)
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.Linux")
endif(WIN32)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/copying.lib")
set(CPACK_PACKAGE_VERSION_MAJOR ${PACKAGE_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PACKAGE_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PACKAGE_VERSION_PATCH})
set(CPACK_SOURCE_PACKAGE_FILE_NAME ${PACKAGE_NAME}-${PACKAGE_VERSION})

#for debian: 'cmake .. -DFREECAD_MAINTAINERS_BUILD=TRUE -DCPACK_GENERATOR="DEB"'
IF( CMAKE_SIZEOF_VOID_P EQUAL 4 )
set(PKG_ARCH i386)
ELSE( CMAKE_SIZEOF_VOID_P EQUAL 4 )
set(PKG_ARCH amd64)
ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 4 )
set(CPACK_DEBIAN_PACKAGE_SECTION "science")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "python, oce | opencascade, libqtgui4, libcoin60, libode1, libsoqt4-20, libxerces-c3.1, libgts-0.7-5, zlib1g, libboost-dev, libeigen2-dev")
set(CPACK_PACKAGE_CONTACT "<root@localhost>")
set(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}_${PKG_ARCH}")
if(WIN32)
set(CPACK_GENERATOR "ZIP")
set(CPACK_SOURCE_GENERATOR "ZIP")
else(WIN32)
if( CPACK_GENERATOR STREQUAL "" )
set(CPACK_GENERATOR "TGZ")
set(CPACK_SOURCE_GENERATOR "TGZ")
endif()
endif(WIN32)
file(GLOB DOT ".*")
file(GLOB TILD "*~")
set(CPACK_SOURCE_IGNORE_FILES
"${DOT}"
"${TILD}"
".a$"
".am$"
".in$"
".bat$"
".o$"
".so$"
".m4$"
"/_build/"
"/_cmake/"
"/.deps/"
"/.svn/"
"/CMakeFiles/"
"/CVS/"
"/autom4te.cache/"
"/build/"
"/debian/"
"/debug/"
"/docs/"
"/m4/"
"/qt-build/"
"/CxImage/"
"/WindowsInstaller/"
"AdditionalInfo.txt$"
"CMakeCache.txt$"
"Makefile$"
"\\\\.sh$"
"_CPack_"
"71"
"config.h$"
"config.log$"
"config.status$"
"configure$"
"configure.ac$"
"Doxyfile"
"html$"
"stamp-h1$"
".swp$"
"tar.bz2"
"tar.gz"
"~$"
)
#set(CPACK_SOURCE_IGNORE_FILES
# ${CPACK_SOURCE_IGNORE_FILES}
# "/Pivy-0.5/"
#)
set(CPACK_SOURCE_STRIP_FILES "")
include(CPack)

#ADD_CUSTOM_TARGET(DIST make package_source)

endif(FREECAD_MAINTAINERS_BUILD AND NOT WIN32)

+ 908
- 0
ChangeLog.txt View File

@@ -0,0 +1,908 @@
Version:
* Sketcher module added with constraint solver using SketchFlat
* Add Draft module to installer
* Fix many Python reference counting errors
* Implement edit mode for meshes and shapes
* Property editor for placements added
* Implement Python's number protocol for MatrixPy and VectorPy
* Implement import/export framework
* Workaround for offscreen renderer due to a huge memory leak in Coin 2.4.x
* Support of Qt 4.1.4 in Draft module
* Porting sources to Mac OS X Leopard
* Implement a progress indicator to run with OCC algorithm classes
* Binding for SWIG-generated pythonocc added
Version: 0.7.1779 Date: Sun 14 Dec 2008 +++++++++++++++++++++++++++++
* Implementation of uuid
* Support of transient directories for FreeCAD documents
* Basic support to create SVG files from scenegraph
* Python binding finished for all shape and geometry classes in Part module
* Move to PyCXX 5.4.2
* Class Writer can now insert ascii or bin data in xml stream
* Start porting to OpenCascade 6.3
* Use Tango icon set
Version: 0.7.1672 Date: Sat 25 Oct 2008 +++++++++++++++++++++++++++++
* Update of Windows installer
Version: 0.7.1658 Date: Sat 11 Oct 2008 +++++++++++++++++++++++++++++
* Fix many license issues
* Define QT_NO_CAST_FROM_ASCII to avoid problems with UTF-8 encoded strings
* Support additional module paths in home directory
* Re-implement the "What's this" facility to start the help window with context-sensitive help
* Create Python commands from the user input in the property editor
* Support of groups in property editor
* Implement general export framework
* Implement graphical user-interface for creation of fillets and extrusions
* Add scene inspector for analyzing the OpenInventor scene graph
* Rework online help, prepared for new framework in Qt4.4
Version: 0.7.1514 Date: Sun 03 Aug 2008 +++++++++++++++++++++++++++++
* Add more stuff to the copyright file
* control: add build-dep to python-central
* Abstract interface for geometric data types
* Avoid flickering of cursor when cutting several meshes at once
* Update to the latest debian policy version 3.7.3
* Several bugs fixed with Python GIL
* Make TopoDS_Shape and Geom_Geometry classes accessible from Python
* Make Python interface for algorithms on shapes and geometries
* Support of mesh segments
* Add test/annotation object
* Add simple measurement facility
* Remove OpenCascade dependency in Mesh module
* Thumbnail facility added
* Start cMake support
* Compile with boost 1.35
Version: 0.7.1344 Date: Wed 21 May 2008 +++++++++++++++++++++++++++++
* Write patch file to make builds with OpenCASCADE libs inside but with no
dependency to libopencascade6.2
* New debian package for Feisty
* New package with fixed self-dependency problem
* Embed required OpenCASCADE libs into this package as long as no official
Debian package is available
Version: 0.7.1342 Date: Mon 19 May 2008 +++++++++++++++++++++++++++++
* Switch to new versioning scheme of OpenCASCADE packages
* Re-license all FreeCAD source code to LGPL
Version: 0.7.1316 Date: Sat 26 Apr 2008 +++++++++++++++++++++++++++++
* Support of pivy (Python binding for Coin/SoQt)
* Support of PyQt4
* General support of SWIG modules
* Cleanup code and fix of several race conditions or insecure code (flawfinder)
* UTF-8 support
* Optimize mesh evaluation/validation classes to be faster and using less memory
* Include Pivy -- the Python binding for Coin
Version: 0.7.1031 Date: Fri 04 Jan 2008 +++++++++++++++++++++++++++++
* Qt4 port finished
* Support of Python binding for Qt4
* Support of Python binding for Coin
* Support of entirely in Python written modules
* Added support of model driven architecture for Python binding
* Use boost's signal/slot mechanism to update data
Version: 0.6.645 Date: Tue 24 Jul 2007 ++++++++++++++++++++++++++++++
* Qt4 port started
Version: 0.6.476 Date: Tue 27 Feb 2007 ++++++++++++++++++++++++++++++
* Use revision number in version naming scheme
* Initial Release of Debian/Ubuntu package
Version: 0.5.285 Date: Thu 05 Oct 2006 ++++++++++++++++++++++++++++++
* Use revision number in version naming scheme
* Initial Release of Debian/Ubuntu package
* Optimizations for huge meshes implemented
* Export VRML97 from scenegraph
* Export mesh as compressed VRML
* have only one color bar per scene
* group classes supporting various mesh formats to two classes: MeshOutput and MeshInput
Version: V0.5B8 Date: Tue Aug 01 2006 +++++++++++++++++++++++++++++++
* Write FreeCAD.log to AppData folder
* Use 'HOME' for Linux and 'HOMEDRIVE' for Windows only
* new type FCUInt introduced
* use same compressed color values as Coin3d
* Remove PYTHONPATH stuff
* port to OpenCascade 6.1
* Switch the installer to python23.zip type lib
* PropertyFile added and editor implemented
* Check whether a project file is already open and throw an exception
* Allow to open a project file even if not everything can be loaded e.g. if a module is missing
* Select name if a file instead of directory was given in FileDialog's getOpenFileName() or getSaveFileName() methods
* Bug fixed in harmonizing normals of a mesh
* speed up a lot several algorithms that searches for independant components of a mesh or searches for inhomogenous normals
* make MeshKernel::VisitNeighbourFacets() more robust against topologic errors in mesh
* Option added to do one- or two-side rendering of meshes
* Dialog to enter numbers higher than the maximum of int's, i.e numbers up to 4294967295
* Bug 1449428 (Crash when output to console too long) fixed by replacing vsprintf by vsnprint
* Bug 1558658 (A hidden view with a spinning part consumes CPU-Time) fixed
* Bug 1558622 (Version.h is not generated with a normal build) fixed
* Patches 1559380, 1559154 applied
* Bug 1564726 fixed (Does not compile with GCC 4.1.1)
* Bug 1566863 fixed (Float Property is has limited range [0..12])
* RFE 1566398 impl. (Property editor for App::PropertyEnumeration)
Version: V0.5B7 Date: Thu May 18 2006 +++++++++++++++++++++++++++++++
* move to SVN version control
* added spins to edit line width and point size in display dialog
* Optimized SoFCMeshNode for handling of huge meshes
* Prepend SoCallback node to log all traversing actions (only for debugging)
* command for toggling clipping plane
* command for freezing view positions
* added new ViewProvider for meshes with more than 100.000 triangles using SoFCMeshNode for optimizations
* save/restore of view providers into/from a separate XML file in a project file
* check if project file exists when loading from command line
* using grid to speed up cutting algoritm for huge meshes
* calculate inverse color of mesh color for open edges
* added project properties to App::Document
* added material property class
* allow to disable notification of property container when a property has changed its value
* added dialog to show and set project information
* start moving display relevant properties from DocumentObject (data) classes to the associated ViewProvider (view) classes
* reimplemented dialogs DlgDisplayPropertiesImp and DlgMaterialPropertiesImp
* added ViewProvider class for Python
* separate data and view properties and show in different tabs in the editor
* new methods added to Gui::DocumentPy to get active object and object by name
* add only required Inventor nodes to all ViewProvider subclasses and removed from ViewProviderDocumentObject
* use an additional STL vector to preserve the creation order of objects
* added a group class for document objects and its view provider
* added PropertyPartShape to save/load shapes to/from a document
* rename document member in SoFCSelection after a document has been renamed
* Prepared for OCC 6.1: The modules 'AppMesh', 'AppPartGui', 'AppRaytracing' and 'AppRaytracingGui' need the module 'TKMesh.lib'
* Added a method to XMLReader to get unsigned long from a string
* Make several methods of BaseView const
* Bug fixed in TreeView
* Added new action classes for en/disabling selection and highlighting with their colors
* Bug fixed when opening a project with the same file name
* RFE 1450472 Clear selection of active document only
* SoFCMeshOpenEdge shape node added to render the open edges of a mesh
* print some information in Attach() and Detach() in Observer in debug mode
* delete command objects when application is exiting
* bug fixed in 'Refresh' command
* active view stuff fixed
* proper handling of double clicks with wheel button
* Random color implemented
* Box zoom implementation started
=====================================================================
MOVE TO SUBVERSION
=====================================================================
Version: V0.5B6 Date: Sat Apr 15 2006 +++++++++++++++++++++++++++++++
* renamed Vector3D to Vector3f indicating the precision of float and Vector3d as double respectively
* updated the unittests in Test framework using new API
* Added some experimental properties to mesh viewprovider
* Allow to build up structured menus from within Python
* StdWorkbench::setupContextMenu() implemented
* PropertyStringList added
* Continued implementation of property editor
* Nullify reference to deleted object of dependent objects (Document::remObject)
* Check if the reference is valid in Mesh::Feature::getMesh() and subclasses
* Several bugs in Raytracing module fixed
* API changes in DocumentPy:
- Recompute -> recompute
- activeFeature -> activeDocument
- addFeature -> addObject
- getFeature -> getObject
- removeFeature -> removeObject
- listFeatures -> listObjects
- AddFeature removed
- GetFeature removed
- GetActiveFeature -> getActiveObject
* API changes in Property
- Save(Writer&) -> Save(Writer) const
* API changes in ViewProviderDocumentObject
- attach(App::AbstractFeature*) -> attach(App::DocumentObject*)
* Applied patch 1470733, SetOperation patch
* Applied patch 1470737, new module tritritest
* Fixed bug in ViewProviderDocumentObject::ViewProviderDocumentObject(): pcPointStyle->ref()
* Check for scheme version when loading a project file and handle the reading procedure differently
* RFE 1470745 implemented (material mode: Open Edges)
* show also members of DocumentObjects in Python (implemented in DocumentObjectPy::_getattr)
* show members in MaterialPy, DocumentPy and FeaturePy
* Fixed bugs with C++/Python framework
(NOTE: All C++ classes returning an associated Python object with a reference to itself must NOT return always a new instances
for each call but it must return the same instance, otherwise the Python objects cannot be notified when the C++ object
has been destroyed)
* Allow drag'n'drop for files coming from ZIP files
* More intuitive handling of property editor
Version: V0.5B5 Date: Sat Feb 25 2006 +++++++++++++++++++++++++++++++
* Make use of AC_LIBTOOL_DLOPEN macro for Unix/Linux based systems to allow to create modules.
* Create a loader module (without 'lib' prefix ) for each shared library (with 'lib' prefix)
* The dirty hack to create symlinks during installation has been removed.
* Builder3D Visual debugging facility
* set default tabwidth in editor to 4 char, can be changed in user settings
* block comment/uncomment implemented
* Undo/Redo of block comment or uncomment implemented
* Bug in DocItem class fixed: allow only one item with the same name
* set the dirty flag after Gui::Document has been changed, remove after saving the document
* WildMagic dllexport define (patch 1441148)
* fix assert if missing feature (patch 1441146)
* new modules (patches 1441103, 1441082)
* Fixes for new modules (patch 1441145)
* Specify orthographic or perspective camera in user settings
* Ignore built files in Python script for creation of modules
* Fixing Bug 1442521,
* turn backface culling on/off (RFE 1443940). Seems to work properly with convex geometries only
* Enabled two-side rendering for meshes in case it is not a solid
* Return the edge list by reference in mesh kernel (to avoid memory leak)
* PropertyVectorList implemented
* Use PropertyVectorLists and PropertyFloatLists in Mesh::Curvature feature and its associated view provider
* PropertyColor(List) implemeted
* PropertyMeshKernel added
* move all Projects to NODEFAULTLIBS
* move all Projects to xcopy
* start implementing the link between FreeCAD property and property editor
* New methods in Builder3D (patch 1450695,1451028)
* Set operations (patch 1451026, 1451138, 1451141)
* start const Mesh and MeshProperty
* implement class to evaluate and validate meshes with corresponding feature classes
* dialog added to analyze and repair meshes
* special view providers to display defects of meshes
* delete features from the document
* bug fixed: remove features to be deleted from the selection
* bugs fixed in selection node
* restore original document file name after loading a project file
* start implementing an Inventor node rendering the mesh structure directly
Version: V0.5B4 Date: Sat Feb 04 2006 +++++++++++++++++++++++++++++++
* use type system in selection class
* replace DataStream classes by i/ostream classes
* start standardization of API of exported Python classes
* implement standard factory in Base::Type
* remove Feature and ViewProvider Factory, use Standard
* using update instead of recompute after loading document
* using c++ name in addFeature()
* updating the installer files
* fixing the build Dist scripts
* implementing Comment for Save picture
* implement MIBA
* use type system in workbench classes
* VC8 Port
* Property Pre Callback
* Property Lists started
* FeatureTest
* Run script from editor
Version: V0.5B3 Date: Mon Jan 30 2006 +++++++++++++++++++++++++++++++
* use the zipios++ library for reading from/writing into compressed archives
* update zipios++ sources to current CVS version
* mesh creation with less memory usag (patch from bgrupp)
* a fast algorithm to count edges (2 manifold) without additional memory (patch from bgrupp)
* resolve problems for running macros from file with Microsoft Visual Studio 8.0 (patch from bgrupp)
* I/O of points and meshes in document container file
* fixes memory exception in view provider for meshes
* fixes memory exception when rendering an Inventor node with huge amount of data
* more efficient loading of huge meshes
Version: V0.5B2 Date: Sun Jan 15 2006 +++++++++++++++++++++++++++++++
* implementing Mesh save and restore
* implementing Points save and restore
* Save/Open of compressed XML documents
* Preference page for document
* Setting of document compression level
* set _STLP_USE_NEWALLOC to free memory allocated in associative containers
* implement Open/Save/SaveAs for use from Python
Version: V0.5B1 Date: Jan 15 2006 +++++++++++++++++++++++++++++++
* changes due Version in Installer
Version: V0.3B5 Date: Wed Nov 30 15:56:28 2005 +++++++++++++++++++++++++++++++
* redesign of Command framework finished
* download URL adjusted
* allow to download documentation from SourceForge into another directory
* store user settings under .FreeCAD on Linux platforms
* languageChange f?r CommandGroup and its items
* connect and implement Viewer Preferences and updates
* fixing Display Dialog
* increment reference count of root element before adding to the scenegraph (fixes also the bug with IV examples)
and decrement counter when viewer gets destructed
* bug fixed in destruction of viewer
* moved code from SoFCSelectionAction::callDoAction() to SoFCSelection::doAction() as the selection object must decide what to do, not the action
* Implementing save document (partially)
Version: V0.3B1 Date: Thu Aug 11 06:20:13 2005 +++++++++++++++++++++++++++++++
* Begin Workbench framework redesign
* BUG 1216922 fixed (Bug with active document)
Version: V0.1B120 Date: Tue Jul 26 17:09:13 2005 +++++++++++++++++++++++++++++++
* Move import shapes from Import to Part
* Reworking Feature Property handling
* Implementing Feature Linking
* Add Naming to Features (AddFeature() needs now a Type and a Name
* Moving Vector3D and Matrix4D in Base::
* Moving DataWithProperty in Base::
* Reworking Points
* Points load Ascii
* CurveNet Feature in Part
* Bug 1242877 fixed (Reference counting)
Version: V0.1B119 Date: Wed Jun 29 12:57:43 2005 +++++++++++++++++++++++++++++++
* reworking recalculation of the document
* implementing Feature viewing modes and material
- Python binding for that all
* ViewProvider framework in Inventor viewer
* remove CasCade Viewer
* Interpreter::runString returns now a value
* Improving mouse interaktions
- fix and enable Spin rotation
- implement panTo middle mouse double click
* implementing selection
* using "right" transparency mode
* RFE 1187174 implemented (Calling "print" for internal Python objects)
* Several improvements:
- Command Std_ViewFullScreen switched to toggle command
- Use ESC or F to leave fullscreen mode (hard coded in MDIView)
- Ignore ContextEvents and accelerators while the progress bar is working
- Use double prescision for double in parameter editor
- Consider fullscreen windows in ApplicationWindow::activeView()
* Initial impl. of a simple color legend
* Show progressbar not from beginning but after a few seconds
* Using own event loop (QDialog not exception-safe)
* RFE 1149709 Missing waitcursor implemented (using Sequencer therefore)
* RFE 1211364 Clean up when closing App (using Python's Py_AtExit and Py_Finalize)
* BUG 1232848 Recursion in IsKind()
Version: V0.1B118 Date: Tue Jun 07 15:32:43 2005 +++++++++++++++++++++++++++++++
* Bug 1165895 fixed (Bug in closing document)
* RFE 1223968 implemented (Pasting scripts in the python console)
* Bug 1224686 Action.h: command not found error during linux make
Check for QT_UIC and QT_MOC again after the Qt test
Version: V0.1B117 Date: Sun Mar 20 14:06:55 2005 +++++++++++++++++++++++++++++++
* Mesh data structure added to Mesh module
* Feature import for STL files added
* Viewprovider for meshes added
* Integration of latest Image module source
* RFE 1159671 implemented (elements in alphabetic order)
* Finishing drag&drop multible files
* Finishing open from command line and droping on Programm icon
* solving load dependand modules
* more convenient Python console
* Bug 1149706 fixed (Cannot load CAD curves)
* RFE 1214187 implemented (Remove views from main window)
Version: V0.1B116 Date: Wed Mar 16 23:19:23 2005 +++++++++++++++++++++++++++++++
* dummy build
Version: V0.1B115 Date: Sun Feb 27 22:01:44 2005 +++++++++++++++++++++++++++++++
* dummy build
Version: V0.1B114 Date: Sun Feb 13 17:07:39 2005 +++++++++++++++++++++++++++++++
* Encapsulation of 'wget' in NetworkRetriever
* RFE 1100311 Message if wget cannot be found
* Bug 1124689 fixed (Problems when all MDI windows closed)
* Heavy bug in View3DInventorEx fixed
* Check default parameter in FCParameterGrp::GetASCII() and use "" if it is 0
* enhanced NetworkRetriever
* loading/saving of user defined macros
* Logging into file is working under Linux now
* RFE 1149922 implemented (Autoscrolling at startup)
Version: V0.1B113 Date: Fri Feb 11 00:47:38 2005 +++++++++++++++++++++++++++++++
* realize code guidelines in Gui
* Patch 1119485 inserted
* Method to class Tools added to convert between SbSFImage and QImage
Version: V0.1B112 Date: Mon Jan 31 01:57:33 2005 +++++++++++++++++++++++++++++++
* redesign of PrefWidgets
Version: V0.1B111 Date: Sun Jan 30 19:02:55 2005 +++++++++++++++++++++++++++++++
* reactivate Inventor viewer
* build in examples
* new view commands
Version: V0.1B110 Date: Fri Jan 28 16:38:29 2005 +++++++++++++++++++++++++++++++
* fix 1110577
* finish macro module switching
Version: V0.1B109 Date: Mon Jan 24 11:13:15 2005 +++++++++++++++++++++++++++++++
* plugin containing FreeCAD's specific widgets
Note: You have to build the sources under src/Tools/plugins/widgets and
copy the library to $QTDIR/plugins/designer to make use of them
* Changing logging
- -l option switch the file log on
- -lf to a special file
- SetStatus and GetStatus switch on or off the observer
Version: V0.1B108 Date: Sat Jan 15 14:24:52 2005 +++++++++++++++++++++++++++++++
* Moved HtmlView to HelpView * Reimplementaion
* Added class FileChooser ( line edit with button on its right side to browse)
* Merged pref. page "Help viewer" and "Online Help" to one page
* TextEdit class with completion
Version: V0.1B107 Date: Tue Jan 11 11:16:46 2005 +++++++++++++++++++++++++++++++
* put Application and Document (and helper classes) in namespace App
* put exception handling into ParameterPy wrapper
* PIMPLE document in class and py class
* put the whole document python methodes with the macros and exceptions
* removing doctype and put Feature handling into the document
* Bug 1100780 fixed (no color in editor after first start)
Version: V0.1B106 Date: Mon Jan 10 11:16:24 2005 +++++++++++++++++++++++++++++++
* fixed Bug 1099103 by fixing HasGroup in ParameterPy
Version: V0.1B105 Date: Mon Jan 03 16:06:30 2005 +++++++++++++++++++++++++++++++
* RFE 1076842 implemented (overlong MDi tabs)
* Bug 1076836 fixed (Focus problem with MDI)
* Redesign of PrefWidget & WindowParameter
* ProgressBar shows remaining time
* Bug fixed in removing groups from parameters
* Update Commands tab in Customize dialog after creating any macro commands
* Allow to modify existing macro commands
* FileIconProvider class improved
* PyResource class improved
* updated README.Linux
* clear out Action.cpp/h
* use QCString instead of QString for all prefPath and prefEntry properties. This is because of i18n
* Translator class added
* .ts files updated
* Change language on the fly
Version: V0.1B104 Date: Tue Dec 21 22:15:28 2004 +++++++++++++++++++++++++++++++
* Bug 1078371 fixed (crash of property editor)
Version: V0.1B103 Date: Wed Dec 08 14:33:04 2004 +++++++++++++++++++++++++++++++
* RFE 1080561 (keeping standard toolbars) implemented
* RFE 1080558 (Return in Macro Dialog) implemented
* RFE 1078375 (Report view enhancement) implemented
* Import of STEP and IGES files
Version: V0.1B102 Date: Mon Dec 06 02:15:33 2004 +++++++++++++++++++++++++++++++
* Redesign of undo/redo framework
* Redesign of the customize pages framework
* Simplified impl. of the General and Editor preference pages
Version: V0.1B101 Date: Thu Dec 02 22:32:22 2004 +++++++++++++++++++++++++++++++
* First working experiments with associative parametric modeling
Version: V0.1B100 Date: Mon Nov 29 19:40:56 2004 +++++++++++++++++++++++++++++++
* set up new exception handling for python call back
* implement std property acces in App::Feature
Version: V0.1B99 Date: Fri Nov 26 22:40:56 2004 +++++++++++++++++++++++++++++++
* replace QextMDI by own impl. using QWorkspace and QDockWindow
* Tabbar added to the bottom of the workspace area
Version: V0.1B98 Date: Fri Nov 12 18:31:46 2004 +++++++++++++++++++++++++++++++
Version: V0.1B97 Date: Thu Nov 11 22:40:19 2004 +++++++++++++++++++++++++++++++
Version: V0.1B96 Date: Tue Nov 9 00:29:38 2004 +++++++++++++++++++++++++++++++
* Impl. of a property editor as described in "Practical Qt"
Version: V0.1B95 Date: Wed Nov 03 17:34:53 2004 +++++++++++++++++++++++++++++++
* Insert CutFeature
* Automatic Property validation
Version: V0.1B94 Date: Sat Oct 23 18:58:52 2004 +++++++++++++++++++++++++++++++
* finished implementation of the Tip of the day
* splitted several big files in smaller ones
* namespace Gui::Kexi for property editor
* namespace Gui::Dialog * documentation for most dialogs
* use QToolBox provided by Qt instead of StackBar
* removed most of unneeded includes (not in PCH) to speed up compilation
* use own code convention on several classes
Version: V0.1B93 Date: Thu Oct 14 21:55:08 2004 +++++++++++++++++++++++++++++++
* features now inserted in the document and get called by a function
Version: V0.1B92 Date: Sun Oct 03 17:55:31 2004 +++++++++++++++++++++++++++++++
* using namespaces in several modules in Gui now
* documentation
Version: V0.1B91 Date: Tue Sep 21 15:34:55 2004 +++++++++++++++++++++++++++++++
* New organsiation of Build scripts in fcbt (FreeCADBuildTool)
* first experiments with namespaces With Console (FCConsole) and Interpreter
* DocTypePy object for document behavior implented
Version: V0.1B90 Date: Tue Sep 07 19:25:03 2004 +++++++++++++++++++++++++++++++
* Clean up path finding
* port to OCC 5.2
- switch to new iostream (finaly!!!)
Version: V0.1B89 Date: Fri Aug 20 19:03:18 2004 +++++++++++++++++++++++++++++++
* pimple App/Application and App/Document
* change python export
Version: V0.1B87 Date: Thu Jun 03 23:47:13 2004 +++++++++++++++++++++++++++++++
* several minor bugs fixed
* load settings at startup made in preferences
* use Qt splashscreen
Version: V0.1B86 Date: Thu May 06 21:15:32 2004 +++++++++++++++++++++++++++++++
* removed EnvPrints and put it in Config
Version: V0.1B85 Date: Sun Apr 18 01:22:41 2004 +++++++++++++++++++++++++++++++
* Configure script finished, FreeCAD is now running under Linux :-)),
start linux port of the modules now
Version: V0.1B84 Date: Wed Apr 07 15:59:56 2004 +++++++++++++++++++++++++++++++
* Completely rework init phase and main.cpp
Version: V0.1B83 Date: Mon Apr 5 00:42:17 2004 +++++++++++++++++++++++++++++++
* using Qt's qmake tool to build FreeCAD
* FreeCAD now is running under Debian in console mode :-)
but in GUI mode it crashes after the splashscreen appeared :-(
Version: V0.1B82 Date: Sat Mar 20 20:28:27 2004 +++++++++++++++++++++++++++++++
* working configure script producing shared libraries
Version: V0.1B81 Date: Fri Jan 23 18:28:15 2004 +++++++++++++++++++++++++++++++
* connect Python callback functions to QWidget signals
Version: V0.1B80 Date: Wed Jan 07 13:36:29 2004 +++++++++++++++++++++++++++++++
* initial Python binding using Qt's WidgetFactory framework
* Scintilla-Binding reimplemented
* Autowaitcursor improved
* a first version of python console added
Version: V0.1B79 Date: Thu Dec 18 21:48:48 2003 +++++++++++++++++++++++++++++++
* included tkinter into libPack
* using PyUnit and unittestgui.py in test framework
Version: V0.1B78 Date: Sun Nov 23 13:15:15 2003 +++++++++++++++++++++++++++++++
* some fixes for the installer
- using the right Mod dir in case of Installer
- Using absolute Doc path
- using Start/Program for Shortcuts
Version: V0.1B77 Date: Fri Nov 14 14:56:14 2003 +++++++++++++++++++++++++++++++
* Finished Setup stuff
* Removed all relativ paths
* config HomePath is now not in bin anymore
* all config files one dir up
* FC runs now from every derectory
* remove Startup and Install script
Version: V0.1B76 Date: Sat Nov 08 14:47:32 2003 +++++++++++++++++++++++++++++++
* spent own module for BitmapFactory
* make internationalization much more flexible and compile all the *.ts files
into the application (no need of *.qm files at runtime any more)
* new factory for scripts, widgets and languages
* change FreeCAD and Projects to run with first Version of LibPack
Version: V0.1B75 Date: Sat Nov 01 18:38:15 2003 +++++++++++++++++++++++++++++++
* changes on the Env handling for the LibPack
- EnvMacros.h added
* Startup bat
* Tools to make Binary and Setup distributions
* Internationalization is now supported
Version: V0.1B74 Date: Fri Oct 31 00:27:14 2003 +++++++++++++++++++++++++++++++
* add function RegisterIcon() in ApplicationWindow
Version: V0.1B73 Date: Mon Sep 29 00:36:57 2003 +++++++++++++++++++++++++++++++
* dependencies from header files reduced to speed up compilation
* PIMPLed the ApplicationWindow class
* make the python methods in ApplicationWindow more robust
* improved the custom widget framework
Version: V0.1B72 Date: Wed Sep 24 19:06:32 2003 +++++++++++++++++++++++++++++++
* make customizable widget framework much more flexible (from python)
Version: V0.1B71 Date: Sun Sep 14 17:38:19 2003 +++++++++++++++++++++++++++++++
* make a template application; just run MakeApp.py with application name
Version: V0.1B69 Date: Sun Jul 27 13:29:20 2003 +++++++++++++++++++++++++++++++
* several bugs fixed in property view
* new item types implemented
* make what() method of exception class to const
(because you should use const <exc. class>& in catch block)
* use the document provider classes for the whatsthis stuff
Version: V0.1B68 Date: Wed Jul 23 19:46:41 2003 +++++++++++++++++++++++++++++++
* Add Feature Attribute
* Add Function driver
* Implement Test Command 2
Version: V0.1B67 Date: Sun Jul 20 00:23:56 2003 +++++++++++++++++++++++++++++++
* Precompiled header stuff again
* improved the spin box
* Report output window added
Version: V0.1B66 Date: Sun Jul 13 17:15:34 2003 +++++++++++++++++++++++++++++++
* draw transparent the additional area of resized pixmaps
* draw a pixmap over another pixmap
* a special spin box setting the value by mouse move
* reimplementation of the WhatsThis framework
* several commands
* improved drag and drop for the commandline
Version: V0.1B65 Date: Sat Jul 12 11:44:20 2003 +++++++++++++++++++++++++++++++
* finssh doc framework for basic use
Version: V0.1B64 Date: Sun Jun 15 01:20:15 2003 +++++++++++++++++++++++++++++++
* Recent file list (MRU)
* improvements in drawing dropdown button
* allow to disable drag of menu items
* bug fixed in load/save of window settings
* Inventor Test command
* Inventor BREP binding
* examiner viewer
Version: V0.1B63 Date: Sun Jun 08 20:21:25 2003 +++++++++++++++++++++++++++++++
* Adding the OCC Browser
* Adding PropertyView
* Tree heading layout
* Settings dialog for Scintilla
* switch between several view by clicking CTRL+Tab
* Debug interface in FCInterpreter
* switch between several styles
* drop down button completely new reimplemented
Version: V0.1B62 Date: Sat May 31 11:53:56 2003 +++++++++++++++++++++++++++++++
* redesign of Document view modell
* removing ViewContainer
* adding the OnHasMsg methodes
* switching some stdCommands to message stile to allow views with own document
* moving scintila to a passiv view modell
* updated to new version of Scintilla (1.53)
Version: V0.1B61 Date: Sat May 24 17:35:52 2003 +++++++++++++++++++++++++++++++
* binding for scintilla
* switching the observer to templates
* adding SoQt to the source
* the template observer the M$ STL dont work any more
Version: V0.1B60 Date: Wed May 21 21:18:53 2003 +++++++++++++++++++++++++++++++
* finishing close, save and update stuff
Version: V0.1B59 Date: Sun May 18 11:03:48 2003 +++++++++++++++++++++++++++++++
* qextmdi added
* some changes in close flow, still not finished
* fix close stuff!
Version: V0.1B59 Date: Thu May 17 15:40:24 2003 +++++++++++++++++++++++++++++++
* scintilla added
* pragmas set for windows only
* bug fixed in Buttongroug
* add string for CustomWidget where to store
Version: V0.1B58 Date: Thu May 01 20:40:24 2003 +++++++++++++++++++++++++++++++
* patch from werner
* precompiled header (werner)
Version: V0.1B57 Date: Fri Apr 25 16:18:12 2003 +++++++++++++++++++++++++++++++
* New modules for the ToptDS and Geometry wrapping
* Script command for macro customizing
Version: V0.1B56 Date: Tue Apr 22 18:38:49 2003 +++++++++++++++++++++++++++++++
* finish Macro recording
* switching toggle commands
* View preferences page
* some bugfixing (werner)
* QT3 fixes (werner)
* DnD changes (werner)
Version: V0.1B55 Date: Fri Apr 18 23:08:12 2003 +++++++++++++++++++++++++++++++
* add macro manager
Version: V0.1B54 Date: Thu Apr 17 12:19:12 2003 +++++++++++++++++++++++++++++++
* commitin the patch from WErner
- still problems with the TreeBar
Version: V0.1B53 Date: Sun Apr 13 15:33:23 2003 +++++++++++++++++++++++++++++++
* patch from Werner about Linux
* rezising the tree and the Icons
Version: V0.1B52 Date: Thu Apr 10 21:17:20 2003 +++++++++++++++++++++++++++++++
* insert the TreeDockBar
Version: V0.1B51 Date: Sun Apr 06 21:27:35 2003 +++++++++++++++++++++++++++++++
* Realy big patch from Werner
- Fix a problem with the paning in MouseModel
- Fixing workbench binding for std. menus
- switch to QT_VER for easier changing QT Version
- fix cmd_name bug in CmdBar
- making command line dropabel (QT3)
- frame for 3Dview
- time in about dialog ;-)
Version: V0.1B50 Date: Fri Apr 04 22:10:24 2003 +++++++++++++++++++++++++++++++
* Fix on the window rewrite
* some work on the Linux port
Version: V0.1B49 Date: Thu Apr 03 22:45:35 2003 +++++++++++++++++++++++++++++++
* Master redisign of the window system, not yet full working
Version: V0.1B48 Date: Sun Mar 30 15:06:23 2003 +++++++++++++++++++++++++++++++
* Big patch from Werner about:
- feeding toolbars and Commandbar and menus from the parameterts
- customizing works with positions in command bar and toolbar
- customizing by draging from menu into toolbar and commandbar
Version: V0.1B47 Date: Fri Mar 28 18:24:36 2003 +++++++++++++++++++++++++++++++
* Import App Module added
* removing Part.py and PartGui.py
Version: V0.1B46 Date: Wed Mar 26 18:02:11 2003 +++++++++++++++++++++++++++++++
* new methodes in ParameterGrp (IsEmpty(), HasGroup() )
Version: V0.1B45 Date: Thu Mar 20 21:05:21 2003 +++++++++++++++++++++++++++++++
* Testframe for Parameter and removal
Version: V0.1B44 Date: Wed Mar 19 21:41:52 2003 +++++++++++++++++++++++++++++++
* deletion of Parameter and Grps
* Observer delete notification
Version: V0.1B43 Date: Sun Mar 16 22:32:35 2003 +++++++++++++++++++++++++++++++
* startet Undo Redo logic
Version: V0.1B42 Date: Thu Mar 13 21:36:58 2003 +++++++++++++++++++++++++++++++
* changes in Customize Dialog
Version: V0.1B41 Date: Sat Mar 08 19:16:05 2003 +++++++++++++++++++++++++++++++
* again new resource concept for commands
* python command object
* test application
- implemented some basic tests
Version: V0.1B40 Date: Tue Mar 04 21:53:02 2003 +++++++++++++++++++++++++++++++
* Activiti update
* new resource concept in commands
* Command groups
* Command belonging to AppModules
* Checking on unsaved files in close()
Version: V0.1B39 Date: Mon Mar 03 12:32:14 2003 +++++++++++++++++++++++++++++++
* include werners patch
Version: V0.1B38 Date: Thu Feb 27 22:19:35 2003 +++++++++++++++++++++++++++++++
* fix of memory leack in CmdBar (werner)
* start rebulding FCCommand framework
Version: V0.1B37 Date: Tue Feb 25 20:29:19 2003 +++++++++++++++++++++++++++++++
* massiv improved costomize dialog (werner)
- sorting position of toolbars
Version: V0.1B36 Date: Sat Feb 22 18:12:19 2003 +++++++++++++++++++++++++++++++
* fix python problem (Py_INCREF(Py_None))!
Version: V0.1B35 Date: Wed Feb 19 19:41:39 2003 +++++++++++++++++++++++++++++++
* new Linux patch (Vaclav)
* sequencer break windows only (werner)
* run methode in CommandLine (werner)
Version: V0.1B34 Date: Sun Feb 16 11:55:21 2003 +++++++++++++++++++++++++++++++
* finish the Html-view prefernces dialog (werner)
* making unique defines for operating system in Config.h
* GetActiveWorkbench methode
* included VC7 projects (werner)
Version: V0.1B33 Date: Fri Feb 14 19:58:58 2003 +++++++++++++++++++++++++++++++
* dynamic cinfiguration dialog (Werner)
- first preference dialog for the html view
* Full path parameter implemented
* some fixes in config registry
Version: V0.1B32 Date: Sun Feb 09 22:16:10 2003 +++++++++++++++++++++++++++++++
* fix debug module loading
* implementing startup config registrie and access functions in App.
* implementing Doc Template logic and Part Template
Version: V0.1B31 Date: Fri Feb 07 22:26:22 2003 +++++++++++++++++++++++++++++++
* ifdefs for QT 3 and 2.3 usage (werner)
Version: V0.1B30 Date: Thu Feb 06 20:47:18 2003 +++++++++++++++++++++++++++++++
* fix for the CommandBar (Werner)
* fix for module loding
Version: V0.1B29 Date: Wed Feb 05 09:22:38 2003 +++++++++++++++++++++++++++++++
* patch from Werner
- some small changes
- rewritten Command Bar
* some work on the Part module (now loading in release)
Version: V0.1B28 Date: Fri Jan 31 17:58:13 2003 +++++++++++++++++++++++++++++++
* switching from Stlport IOSTREAM to VC6 iostream
* removing FC container wrapping
* starting serios work on module loading in part and sketcher
Version: V0.1B27 Date: Sun Jan 26 21:25:59 2003 +++++++++++++++++++++++++++++++
* Lot of stuff from Werner
- New customize dialog
- lot of work on preferences
Version: V0.1B26 Date: Tue Jan 21 05:59:01 2003 +++++++++++++++++++++++++++++++
* Preferences Widget Framework (Werner)
- New module WidgetFactory
- New modeul PrefWidget
Version: V0.1B25 Date: Sun Jan 19 18:20:51 2003 +++++++++++++++++++++++++++++++
* Big Linux port patch from Vaclav
- some fixes on implicite type conversion (Vaclav)
- moving all .cxx to .cpp mainly in gui
- moving DlgCusomizeImpl to Imp
- and InitGui to GuiInit
- rmoving X() macro (trouble on Linux)
- Linux Gui console (Vaclav)
- Using new sstream on Linux (Vaclac)
- fixing some case stuff in include (Vaclav)
* some work on the main MouseModel (Werner)
Version: V0.1B24 Date: Sun Jan 12 22:15:29 2003 +++++++++++++++++++++++++++++++
* switching workbenches
Version: V0.1B23 Date: Fri Jan 10 17:43:13 2003 +++++++++++++++++++++++++++++++
* fix in part module
Version: V0.1B22 Date: Thu Jan 09 22:16:02 2003 +++++++++++++++++++++++++++++++
* Add FCBmpFactory
* New Methodes in Gui. (python)
Version: V0.1B21 Date: Mon Jan 06 20:53:48 2003 +++++++++++++++++++++++++++++++
* Building up Part Application
* starting Test Application
* Adding FCFactory in Base
Version: V0.1B20 Date: Mon Jan 06 11:31:16 2003 +++++++++++++++++++++++++++++++
* Clean up Gui.dsp
* split up std commands
Version: V0.1B19 Date: Sat Jan 04 12:23:49 2003 +++++++++++++++++++++++++++++++
* new DlgCustomize (Werner)
Version: V0.1B18 Date: Fri Jan 03 19:26:56 2003 +++++++++++++++++++++++++++++++
* FirstPreferences Dialog
* First Macro Dialogs
Version: V0.1B17 Date: Thu Jan 02 21:50:27 2003 +++++++++++++++++++++++++++++++
* First Version Parameter Dialog
* New Methodes on FCParameterGrp
Version: V0.1B16 Date: Wed Jan 01 18:06:46 2003 +++++++++++++++++++++++++++++++
* Needed interface in CmdBar (Werner)
* fixes in Parameter
Version: V0.1B15 Date: Wed Jan 01 17:09:53 2003 +++++++++++++++++++++++++++++++
* Changing the install prozess
* implementing the Python toolbar bindings
* Split Init.py in Init and Startup
* Finish verbose mode (-v)
Version: V0.1B14 Date: Mon Dec 30 12:42:22 2002 +++++++++++++++++++++++++++++++
* coupling FCaction on FCCmdBar (Werner)
* New group functions in FCParameter (Juergen)
* Progress Bar (Werner)
Version: V0.1B13 Date: Thu Dec 26 19:58:57 2002 +++++++++++++++++++++++++++++++
* View Commands
* switching StdViews from slots to Messages
* try fixing Dock windows
Version: V0.1B12 Date: Thu Dec 26 14:54:54 2002 +++++++++++++++++++++++++++++++
* New Splasher from Werner
* clean up main (-v option)
* User Parameter
* New Background color
* Werner get the automatic wait cursor to work
* Dimension field in the status bar by Werner
Version: V0.1B11 Date: Fri Dec 20 10:44:09 2002 +++++++++++++++++++++++++++++++
* First simple Implementation of Tree Raw
Version: V0.1B10 Date: Wed Dec 18 21:44:21 2002 +++++++++++++++++++++++++++++++
* fix wrong document bug
* html_view cut off horizontal slider
Version: V0.1B9 Date: Mon Dec 16 14:40:59 2002 +++++++++++++++++++++++++++++++
* First version of Werners waiting cursor
* Activ View finished
* Send Msg to view finished
* Test1 importing BREP
Version: V0.1B8 Date: Mon Dec 09 20:51:27 2002 +++++++++++++++++++++++++++++++
* Fixes for button bar from Werner
* New Std Commands
Version: V0.1B7 Date: Fri Dec 06 17:30:26 2002 +++++++++++++++++++++++++++++++
* insert new button bar from Werner
* Activated view methods and SendMsgToActiveView()
Version: V0.1B6 Date: Thu Dec 05 20:59:11 2002 +++++++++++++++++++++++++++++++
* Clean Up GuiApplication
* Add GUI Console observer

+ 40
- 0
Makefile.am View File

@@ -0,0 +1,40 @@
ACLOCAL_AMFLAGS = -I m4

SUBDIRS=data src

EXTRA_DIST = \
cMake/ConfigureChecks.cmake \
cMake/FindCoin3D.cmake \
cMake/FindCoin3DDoc.cmake \
cMake/FindEigen2.cmake \
cMake/FindEigen3.cmake \
cMake/FindF2C.cmake \
cMake/FindODE.cmake \
cMake/FindOpenCasCade.cmake \
cMake/FindOpenCV.cmake \
cMake/FindSoQt.cmake \
cMake/FindSpnav.cmake \
cMake/FindXercesC.cmake \
cMake/FreeCadMacros.cmake \
cMake/UseLibPack6x.cmake \
cMake/UseLibPack7x.cmake \
cMake/UseLibPackCustom.cmake \
config.h.cmake \
CMakeLists.txt \
autogen.sh \
BuildAll.bat \
BuildAllNice.bat \
build.sh \
ChangeLog.txt \
copying.lib \
README.Linux \
README.Win32

debian-package:
$(top_srcdir)/package/makedebian.sh

if HAVE_DOXYGEN
devdoc:
doxygen $(top_builddir)/src/Doc/BuildDevDoc.cfg
endif


+ 93
- 0
README.Cygwin View File

@@ -0,0 +1,93 @@
How to build and run FreeCAD under Cygwin
=========================================
Prerequisites
-------------
To compile FreeCAD, you will need, besides functioning Cygwin environment
and programming tools (like compiler), the following libraries:
o Python (http://www.python.org), >= 2.5.x
o Qt (http://www.trolltech.no), >= 4.1.x
o Coin3D (http://www.coin3d.org), >= 2.4.x
o SoQt (http://www.coin3d.org), >= 1.2.x
o Xerces-c (http://xml.apache.org/dist/xerces-c/)
o zlib (http://www.zlib.net/)
As far as I know, except of Coin3D and SoQt all libraries are available as prebuilt
binary packages from one of the Cygwin mirrors. To install them, first download the
latest version of setup.exe from www.cygwin.com and run it with administrator rights.
Then follow the instructions of the wizard until the list of all available packages
appears. Select the devel files of all the required libraries and install them.
Then download the source tarballs of Coin3D and SoQt and unpack them into a directory
of your choice.
The Coin library can be built with ./configure --disable-msvc;make; make install.
Building SoQt is a bit tricky and I haven't managed yet to build it in a proper way.
There are various problems with X11 functions and Windows API functions which I
don't know how to solve.
And for the Mesh module of FreeCAD the additional libraries
o GTS Library (http://gts.sourceforge.net)
o Wild Magic (http://www.geometrictools.com)
o OpenCASCADE (http://www.opencascade.org), you need >=5.2 here
are required. OpenCASCADE is also needed by the Part and Raytracing modules.
Note: As OpenCASCADE that is also required by the Mesh, Part and Raytracing
modules is not available for Cygwin it is not possible to build them
for this platform. It is planned for the future to move all OpenCASCADE
dependencies of the Mesh module into a separate module so that at least
this module can be built under Cygwin.
Note: All libraries listed above must be built as shared library. Refer to their
documentation to see how to do.
Note: If possible you should enable thread support for the libraries. At least for
Qt thread support is strongly recommended, otherwise you will run into linker
errors at build time of FreeCAD.
Note: zlib might be already on your system, as this is a library that is used
from a lot of other libraries.
Note: There seems to be various problems with Qt's uic tool of the Cygwin port.
Due to these problems it is not possible to run the GUI under Cygwin at the
moment. It is only possible to run the commandline version.
Configuration
-------------
For the build process of FreeCAD we make use of configure scripts.
To have an overview of all options type in ./configure --help, first.
If you have installed all libraries above into standard paths you need not any of the
'--with' options at all. Unless you have installed any library into a non-standard path,
then make use of the --with-XXX-includes or --with-XXX-libs options.
(XXX represents the corresponding library.)
Note: Due to some limitations of the Windows platform it is not possible to build
libraries with unresolved symbols at link time. Thus it is strongly recommended to run
./configure with the option LDFLAGS=-no-undefined, otherwise the creation of shared
libraries fails. For more details see section 11.2.1 Creating Libtool Libraries with
Automake of the libtool documentation.
Note: To specify FreeCAD's root directory it is recommended to use only the '--prefix'
option from the configure script but not the --bindir, --libdir, ... options, because
at startup FreeCAD makes assumptions where its lib-, doc-, .. directories reside.
The default root directory is located in ~/FreeCAD.
If you know how to work with GNU autoconf, feel free to contribute improvements
to our configuration scripts --- that would be great.
Installation
------------
Once you have built the sources successfully using 'make' with 'make install' you can
install FreeCAD onto your machine whereever you want. Go to the directory FreeCAD/bin
and just type in ./FreeCADCmd.
FreeCAD's default root directory resides under ~/FreeCAD, so you don't need root privileges
therefore.

+ 114
- 0
README.Linux View File

@@ -0,0 +1,114 @@
How to build and run FreeCAD under Linux
========================================
Prerequisites
-------------
To compile FreeCAD you will need, besides functioning Linux
and programming tools (like compiler), the following libraries:
o Python (http://www.python.org), >= 2.5.x
o boost (http://www.boost.org), >= 1.33.1
o Qt (http://www.qtsoftware.com), >= 4.1.x
o Coin3D (http://www.coin3d.org), >= 2.4.x
o SoQt (http://www.coin3d.org), >= 1.2.x
o Xerces-C++ (http://xml.apache.org/dist/xerces-c/), >= 2.6
o zlib (http://www.zlib.net/)
And for the some FreeCAD modules the additional libraries
o OpenCascade (http://www.opencascade.org), >= 5.2
o Eigen2 (http://eigen.tuxfamily.org/index.php?title=Main_Page), >= 2.0.5
o ODE (http://www.ode.org), >= 0.10.x
are required.
Note: zlib might be already on your system, as this is a library that is used
by a lot of libraries, too.
Note: All libraries listed above must be built as shared library. Refer to their
documentation to see how to do.
Note: If possible you should enable thread support for the libraries. At least for
Qt thread support is strongly recommended, otherwise you will run into linker
errors at build time of FreeCAD.
Note: The package for SoQt for Debian based systems may lack of the soqt.m4 macro file.
You should download the file from www.coin3d.org and copy it to /usr/share/aclocal.
Note: The package for SoQt (at least for older Debian based systems) is usually built to link
against Qt3. This, however, causes a segmentation fault when using with FreeCAD because
it links against Qt4 and you get a mixup of Qt3 and Qt4 libraries.
To fix this problem you must download the sources from www.coin3d.org and run
configure with the 'with-qt=DIR' switch specifying the location of Qt4.
Probably, it's best to 'make install' the newly built SoQt into a different directory
than the installed SoQt to avoid to corrupt your package database and/or to keep other
applications working. When configuring FreeCAD you have to use the '--with-soqt=DIR'
switch specifying the path of the newly installed SoQt.
For newer Debian releases this already solved by a new package that links against Qt4.
Note: For OpenCascade there does not exist an official .deb package for older Debian based systems
and many other distributions, so you have to download the latest version from www.opencascade.org.
Install the package normally, be aware that the installer is a java program that requires
the official java runtime edition from Sun, not the open-source java (gij) that is bundled
with Debian or Ubuntu. Install it if needed:
sudo apt-get remove gij
sudo apt-get install sun-java5-bin
Be careful, if you use gij java with other things like a browser plugin, they won't work
anymore. Now start the installer with
java -jar setup.jar
With Debian Lenny this issue is solved. There is an OpenCascade package currently in the
non-free section.
During the compilation some Python scripts get executed. So the Python interpreter has
to work properly.
Optionally, you can build the Qt plugin that provides all custom widgets of FreeCAD
we need for the Qt Designer. The sources are located under Tools/plugins/widget.
So far, we don't provide a makefile but calling 'qmake plugin.pro' creates it and
calling 'make' will create the library libFreeCAD_widgets.so. To make known this library
to your Qt Designer you have to copy the file to $QTDIR/plugin/designer.
On our Wiki you'll find more information to build with different Linux distributions at
http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=CompileOnUnix
Configuration
-------------
For the build process of FreeCAD we make use of configure scripts.
To have an overview of all switches type in ./configure --help, first.
You don't need any of these switches unless you have installed a library into a non-standard
path. In this case make use of the appropriate --with-XXX-include or --with-XXX-lib switches,
please. (XXX stands for the corresponding library.)
Of course, for above mentioned problem with SoQt you should use the '--with-soqt=DIR' switch.
Note: To specify FreeCAD's root directory it is recommended to use only the '--prefix'
switch from the configure script but not the --bindir, --libdir, ... switches, because at startup
FreeCAD makes assumptions about where its module directories are installed.
Installation & Running FreeCAD
------------------------------
Once you have built the sources successfully using 'make', with 'make install' you can
install FreeCAD onto your machine whereever you want. FreeCAD's default root directory
is $HOME/FreeCAD, so you don't need root privileges therefore. To run FreeCAD go to
$PREFIX/FreeCAD/bin and type in ./FreeCAD.
Note: In the past there were a lot of problems that the Part workbench couldn't be loaded.
The problem is that the system wasn't able to find the OpenCascade library files.
To fix this problem you are strongly recommended to add the path of these libraries
to LD_LIBRARY_PATH or even to add it to ld.so.conf and run ldconfig.
So, just have fun!
Werner Mayer <wmayer@users.sourceforge.net>
May 2010

+ 302
- 0
README.MinGW View File

@@ -0,0 +1,302 @@
How to build and run FreeCAD under MSYS/MinGW
=============================================
Prerequisites
-------------
Here comes a short introduction how to setup a MSYS/MinGW environment