else()
SET(COMPILER ${CMAKE_GENERATOR})
endif()
+if (WIN32)
+ SET(OS_WITH_BIT "win${COMPILER_BITNESS}")
+elseif(APPLE)
+ SET(OS_WITH_BIT "mac${COMPILER_BITNESS}")
+else()
+ SET(OS_WITH_BIT "lin${COMPILER_BITNESS}")
+endif()
add_definitions(-DCSFDB)
if(WIN32)
install(FILES "${CMAKE_SOURCE_DIR}/src/UnitsAPI/Units.dat" DESTINATION "${INSTALL_DIR}/src/UnitsAPI" )
install(FILES "${CMAKE_SOURCE_DIR}/src/TObj/TObj.msg" DESTINATION "${INSTALL_DIR}/src/TObj" )
-IF("${BUILD_CONFIGURATION}" STREQUAL "Release")
- SET(BUILD_SUFFIX "")
+IF("${BUILD_CONFIGURATION}" STREQUAL "Debug")
+ SET(3RDPARTY_BUILD_SUFFIX "") # debug == release
+ SET(BUILD_SUFFIX "d")
ELSE()
- SET(BUILD_SUFFIX "") # debug == release
+ SET(3RDPARTY_BUILD_SUFFIX "")
+ SET(BUILD_SUFFIX "")
ENDIF()
FUNCTION(SUBDIRECTORY_NAMES MAIN_DIRECTORY RESULT)
ENDIF()
IF(INSTALL_${PRODUCT_NAME})
- INSTALL(FILES "${3RDPARTY_${PRODUCT_NAME}_DLL}" DESTINATION "${INSTALL_DIR}/${DLL_SO_FOLDER}")
+ INSTALL(FILES "${3RDPARTY_${PRODUCT_NAME}_DLL}" DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/${DLL_SO_FOLDER}${BUILD_SUFFIX}")
SET(3RDPARTY_${PRODUCT_NAME}_DLL_DIR "")
ELSE()
GET_FILENAME_COMPONENT(3RDPARTY_${PRODUCT_NAME}_DLL_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL}" PATH)
SET (TCL_FOLDER_VERSION "")
ENDIF()
- INSTALL(FILES "${3RDPARTY_TCL_DLL_DIR_INSIDE}/${DLL_SO_PREFIX}tcl${TCL_VERSION}.${DLL_SO}" DESTINATION "${INSTALL_DIR}/${DLL_SO_FOLDER}")
- INSTALL(FILES "${3RDPARTY_TCL_DLL_DIR_INSIDE}/${DLL_SO_PREFIX}tk${TCL_VERSION}.${DLL_SO}" DESTINATION "${INSTALL_DIR}/${DLL_SO_FOLDER}")
+ INSTALL(FILES "${3RDPARTY_TCL_DLL_DIR_INSIDE}/${DLL_SO_PREFIX}tcl${TCL_VERSION}.${DLL_SO}" DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/${DLL_SO_FOLDER}${BUILD_SUFFIX}")
+ INSTALL(FILES "${3RDPARTY_TCL_DLL_DIR_INSIDE}/${DLL_SO_PREFIX}tk${TCL_VERSION}.${DLL_SO}" DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/${DLL_SO_FOLDER}${BUILD_SUFFIX}")
IF (IS_TCL_VERSION_FOUND)
- INSTALL(DIRECTORY "${3RDPARTY_TCL_LIB_DIR_INSIDE}/tcl8" DESTINATION "${INSTALL_DIR}/lib")
- INSTALL(DIRECTORY "${3RDPARTY_TCL_LIB_DIR_INSIDE}/tcl${TCL_FOLDER_VERSION}" DESTINATION "${INSTALL_DIR}/lib")
- INSTALL(DIRECTORY "${3RDPARTY_TCL_LIB_DIR_INSIDE}/tk${TCL_FOLDER_VERSION}" DESTINATION "${INSTALL_DIR}/lib")
+ # tcl is required to install in lib folder (without ${BUILD_SUFFIX})
+ INSTALL(DIRECTORY "${3RDPARTY_TCL_LIB_DIR_INSIDE}/tcl8" DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/lib")
+ INSTALL(DIRECTORY "${3RDPARTY_TCL_LIB_DIR_INSIDE}/tcl${TCL_FOLDER_VERSION}" DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/lib")
+ INSTALL(DIRECTORY "${3RDPARTY_TCL_LIB_DIR_INSIDE}/tk${TCL_FOLDER_VERSION}" DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/lib")
ELSE()
MESSAGE(STATUS "\nWarning: tclX.X and tkX.X subdirs won't be copyied during the installation process.")
MESSAGE(STATUS "Try seeking tcl within another folder by changing 3RDPARTY_TCL_DIR variable.")
ENDIF()
# FREETYPE
-THIRDPARTY_PRODUCT("FREETYPE" "ft2build.h" "freetype${BUILD_SUFFIX}")
+THIRDPARTY_PRODUCT("FREETYPE" "ft2build.h" "freetype${3RDPARTY_BUILD_SUFFIX}")
-IF("${3RDPARTY_FREETYPE_INCLUDE_DIR}" STREQUAL "" OR "${3RDPARTY_FREETYPE_INCLUDE_DIR}" STREQUAL "3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR-NOTFOUND")
+IF("${3RDPARTY_FREETYPE_INCLUDE_DIR}" STREQUAL "" OR "${3RDPARTY_FREETYPE_INCLUDE_DIR}" STREQUAL "3RDPARTY_FREETYPE_INCLUDE_DIR-NOTFOUND")
ELSEIF(EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR}/freetype2/")
SET(3RDPARTY_INCLUDE_DIRS "${3RDPARTY_INCLUDE_DIRS};${3RDPARTY_FREETYPE_INCLUDE_DIR}/freetype2")
IF(USE_FREEIMAGE)
ADD_DEFINITIONS(-DHAVE_FREEIMAGE)
- THIRDPARTY_PRODUCT("FREEIMAGE" "FreeImage.h" "freeimage${BUILD_SUFFIX}")
+ THIRDPARTY_PRODUCT("FREEIMAGE" "FreeImage.h" "freeimage${3RDPARTY_BUILD_SUFFIX}")
IF(WIN32)
IF("${3RDPARTY_FREEIMAGE_DIR}" STREQUAL "")
ELSE()
SET (3RDPARTY_FREEIMAGEPLUS_DIR "${3RDPARTY_FREEIMAGE_DIR}")
ENDIF()
- THIRDPARTY_PRODUCT("FREEIMAGEPLUS" "FreeImagePlus.h" "freeimageplus${BUILD_SUFFIX}")
+ THIRDPARTY_PRODUCT("FREEIMAGEPLUS" "FreeImagePlus.h" "freeimageplus${3RDPARTY_BUILD_SUFFIX}")
ENDIF()
ELSE()
# GL2PS
IF(USE_GL2PS)
ADD_DEFINITIONS(-DHAVE_GL2PS)
- THIRDPARTY_PRODUCT("GL2PS" "gl2ps.h" "gl2ps${BUILD_SUFFIX}")
+ THIRDPARTY_PRODUCT("GL2PS" "gl2ps.h" "gl2ps${3RDPARTY_BUILD_SUFFIX}")
ELSE()
CHECK_AND_UNSET_GROUP ("3RDPARTY_GL2PS")
CHECK_AND_UNSET ("INSTALL_GL2PS")
ENDIF()
- THIRDPARTY_PRODUCT("OPENCL" "CL/cl.h" "OpenCL${BUILD_SUFFIX}")
+ THIRDPARTY_PRODUCT("OPENCL" "CL/cl.h" "OpenCL${3RDPARTY_BUILD_SUFFIX}")
# if CL/cl.h isn't found (and 3RDPARTY_OPENCL_INCLUDE_DIR isn't defined)
# then try to find OpenCL/cl.h (all other variable won't be changed)
- THIRDPARTY_PRODUCT("OPENCL" "OpenCL/cl.h" "OpenCL${BUILD_SUFFIX}")
+ IF("${3RDPARTY_OPENCL_INCLUDE_DIR}" STREQUAL "" OR "${3RDPARTY_OPENCL_INCLUDE_DIR}" STREQUAL "3RDPARTY_OPENCL_INCLUDE_DIR-NOTFOUND")
+ THIRDPARTY_PRODUCT("OPENCL" "OpenCL/cl.h" "OpenCL${3RDPARTY_BUILD_SUFFIX}")
+ ENDIF()
+
ELSE()
CHECK_AND_UNSET_GROUP ("3RDPARTY_OPENCL")
- CHECK_AND_UNSET ("3RDPARTY_OPENCL_ADDITIONAL_PATH_FOR_LIB")
+ CHECK_AND_UNSET ("3RDPARTY_OPENCL_ADDITIONAL_PATH_FOR_HEADER")
CHECK_AND_UNSET ("3RDPARTY_OPENCL_ADDITIONAL_PATH_FOR_LIB")
CHECK_AND_UNSET ("INSTALL_OPENCL")
ENDIF()
INCLUDE(adm/templates/tbb.cmake)
IF(INSTALL_TBB)
- INSTALL(FILES "${3RDPARTY_TBB_DLL}" "${3RDPARTY_TBB_MALLOC_DLL}" DESTINATION "${INSTALL_DIR}/${DLL_SO_FOLDER}")
+ INSTALL(FILES "${3RDPARTY_TBB_DLL}" "${3RDPARTY_TBB_MALLOC_DLL}" DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/${DLL_SO_FOLDER}${BUILD_SUFFIX}")
SET(3RDPARTY_TBB_DLL_DIR "")
SET(3RDPARTY_TBB_MALLOC_DLL_DIR "")
MESSAGE(FATAL_ERROR "INSTALL_DIR is empty")
ELSE()
# inc,data,tests DIRECTORY
- install(DIRECTORY "${CMAKE_SOURCE_DIR}/inc" DESTINATION "${INSTALL_DIR}" )
-
- install(DIRECTORY "${CMAKE_SOURCE_DIR}/data" DESTINATION "${INSTALL_DIR}" )
+ install(DIRECTORY "${CMAKE_SOURCE_DIR}/inc" DESTINATION "${INSTALL_DIR}")
+ install(DIRECTORY "${CMAKE_SOURCE_DIR}/data" DESTINATION "${INSTALL_DIR}")
+ install(DIRECTORY "${CMAKE_SOURCE_DIR}/samples/tcl" DESTINATION "${INSTALL_DIR}/samples")
IF(INSTALL_TESTS)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/tests" DESTINATION "${INSTALL_DIR}" )
ENDIF()
OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE WORLD_EXECUTE)
ENDIF()
+
+ SET(CUSTOM_CUR "custom_${COMPILER}_${COMPILER_BITNESS}_${BUILD_SUFFIX}.${SCRIPT_EXT}")
+
+ if (WIN32)
+ SET (CUSTOM_ADD_CONTENT "\nif exist \"%~dp0${CUSTOM_CUR}\" (\n call \"%~dp0${CUSTOM_CUR}\" %1 %2 %3 \n)")
+ else()
+ SET (CUSTOM_ADD_CONTENT "\nif [ -e \"\${aScriptPath}/${CUSTOM_CUR}\" ]; then\n source \"\${aScriptPath}/${CUSTOM_CUR}\" \"\${COMPILER}\" \"\${WOKSTATION}\${ARCH}\" \"\${CASDEB}\" \nfi")
+ endif()
+
+ # change custom.bat/sh
+ if (EXISTS "${INSTALL_DIR}/custom.${SCRIPT_EXT}")
+ FILE(READ "${INSTALL_DIR}/custom.${SCRIPT_EXT}" CUSTOM_CONTENT)
+
+ SET (CUSTOM_CONTENT "${CUSTOM_CONTENT} ${CUSTOM_ADD_CONTENT}")
+
+ FILE(WRITE "${INSTALL_DIR}/custom.${SCRIPT_EXT}" "${CUSTOM_CONTENT}")
+ else()
+ IF(NOT "${BUILD_PATCH_DIR}" STREQUAL "" AND EXISTS "${BUILD_PATCH_DIR}/adm/templates/custom.${SCRIPT_EXT}.main")
+ configure_file("${BUILD_PATCH_DIR}/adm/templates/custom.${SCRIPT_EXT}.main" "custom.${SCRIPT_EXT}" @ONLY)
+ ELSE()
+ configure_file("${CMAKE_SOURCE_DIR}/adm/templates/custom.${SCRIPT_EXT}.main" "custom.${SCRIPT_EXT}" @ONLY)
+ ENDIF()
+
+ install(FILES "${OCCT_BINARY_DIR}/custom.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR}")
+ endif()
+
+ # write current custom.bat/sh
+ IF(NOT "${BUILD_PATCH_DIR}" STREQUAL "" AND EXISTS "${BUILD_PATCH_DIR}/adm/templates/custom.${SCRIPT_EXT}.in")
+ configure_file("${BUILD_PATCH_DIR}/adm/templates/custom.${SCRIPT_EXT}.in" ${CUSTOM_CUR} @ONLY)
+ ELSE()
+ configure_file("${CMAKE_SOURCE_DIR}/adm/templates/custom.${SCRIPT_EXT}.in" ${CUSTOM_CUR} @ONLY)
+ ENDIF()
+
+ install(FILES "${OCCT_BINARY_DIR}/${CUSTOM_CUR}" DESTINATION "${INSTALL_DIR}" )
+
IF (BUILD_Samples)
IF(NOT "${BUILD_PATCH_DIR}" STREQUAL "" AND EXISTS "${BUILD_PATCH_DIR}/adm/templates/sample.bat")
install(FILES "${BUILD_PATCH_DIR}/adm/templates/sample.bat" DESTINATION "${INSTALL_DIR}")
--- /dev/null
+echo off
+
+if "%VCVER%" == "@COMPILER@" (
+ if "%ARCH%" == "@COMPILER_BITNESS@" (
+ if "%CASDEB%" == "@BUILD_SUFFIX@" (
+ set "TCL_DIR=@3RDPARTY_TCL_DLL_DIR@"
+ set "FREETYPE_DIR=@3RDPARTY_FREETYPE_DLL_DIR@"
+ set "FREEIMAGE_DIR=@3RDPARTY_FREEIMAGE_DLL_DIR@"
+ set "GL2PS_DIR=@3RDPARTY_GL2PS_DLL_DIR@"
+ set "TBB_DIR=@3RDPARTY_TBB_DLL_DIR@"
+ )
+ )
+)
+
--- /dev/null
+echo off
+
+if not ["%1"] == [""] set "VCVER=%1"
+if not ["%2"] == [""] set "ARCH=%2"
+if /I ["%ARCH%"] == ["win32"] set "ARCH=32"
+if /I ["%ARCH%"] == ["win64"] set "ARCH=64"
+if /I ["%3"] == ["debug"] set "CASDEB=d"
+if /I ["%3"] == ["d"] set "CASDEB=d"
+
+rem include other custom.bat files with specific 3rdparty paths
+@CUSTOM_ADD_CONTENT@
+
--- /dev/null
+#!/bin/bash
+
+if [ "$COMPILER" == "@COMPILER@" ]; then
+ if [ "$ARCH" == "@COMPILER_BITNESS@" ]; then
+ if [ "$CASDEB" == "@BUILD_SUFFIX@" ]; then
+ export TCL_DIR="@3RDPARTY_TCL_DLL_DIR@"
+ export FREETYPE_DIR="@3RDPARTY_FREETYPE_DLL_DIR@"
+ export FREEIMAGE_DIR="@3RDPARTY_FREEIMAGE_DLL_DIR@"
+ export GL2PS_DIR="@3RDPARTY_GL2PS_DLL_DIR@"
+ export TBB_DIR="@3RDPARTY_TBB_DLL_DIR@"
+ fi
+ fi
+fi
+
--- /dev/null
+#!/bin/bash
+
+@CUSTOM_ADD_CONTENT@
+
@echo off
rem Setup environment and launch DRAWEXE
-call "%~dp0env.bat"
+call "%~dp0env.bat" %1 %2 %3
echo Hint: use "pload ALL" command to load standard commands
-DRAWEXE.exe
+"%CASROOT%/%BIN_TAIL%/DRAWEXE.exe"
+
+set "PATH=%ORIGIN_PATH%"
+
aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD";
-source "${aScriptPath}/env.sh"
+source "${aScriptPath}/env.sh" "$1"
echo 'Hint: use "pload ALL" command to load standard commands'
DRAWEXE
set "SCRIPTROOT=%~dp0"
set "SCRIPTROOT=%SCRIPTROOT:~0,-1%"
-if ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%"
+set "VCVER=@COMPILER@"
+set "ARCH=@COMPILER_BITNESS@"
+set "CASDEB=@BUILD_SUFFIX@"
-set "TCL_DIR=@3RDPARTY_TCL_DLL_DIR@"
-if not ["%TCL_DIR%"] == [""] set "PATH=%TCL_DIR%;%PATH%"
+if not ["%1"] == [""] set "VCVER=%1"
+if not ["%2"] == [""] set "ARCH=%2"
+if /I ["%ARCH%"] == ["win32"] set "ARCH=32"
+if /I ["%ARCH%"] == ["win64"] set "ARCH=64"
+if /I ["%3"] == ["debug"] set "CASDEB=d"
+if /I ["%3"] == ["d"] set "CASDEB=d"
-set "FREETYPE_DIR=@3RDPARTY_FREETYPE_DLL_DIR@"
-if not ["%FREETYPE_DIR%"] == [""] set "PATH=%FREETYPE_DIR%;%PATH%"
+if exist "%~dp0custom.bat" (
+ call "%~dp0custom.bat" %1 %2 %3
+)
-set "FREEIMAGE_DIR=@3RDPARTY_FREEIMAGE_DLL_DIR@"
-if not ["%FREEIMAGE_DIR%"] == [""] set "PATH=%FREEIMAGE_DIR%;%PATH%"
+if ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%"
-set "GL2PS_DIR=@3RDPARTY_GL2PS_DLL_DIR@"
-if not ["%GL2PS_DIR%"] == [""] set "PATH=%GL2PS_DIR%;%PATH%"
+set "ORIGIN_PATH=%PATH%"
-set "TBB_DIR=@3RDPARTY_TBB_DLL_DIR@"
-if not ["%TBB_DIR%"] == [""] set "PATH=%TBB_DIR%;%PATH%"
+if not ["%TCL_DIR%"] == [""] set "PATH=%TCL_DIR%;%PATH%"
+if not ["%FREETYPE_DIR%"] == [""] set "PATH=%FREETYPE_DIR%;%PATH%"
+if not ["%FREEIMAGE_DIR%"] == [""] set "PATH=%FREEIMAGE_DIR%;%PATH%"
+if not ["%GL2PS_DIR%"] == [""] set "PATH=%GL2PS_DIR%;%PATH%"
+if not ["%TBB_DIR%"] == [""] set "PATH=%TBB_DIR%;%PATH%"
rem ----- Set path to 3rd party and OCCT libraries -----
-set "PATH=%CASROOT%\bin;%PATH%"
+set "BIN_TAIL=win%ARCH%/%VCVER%/bin%CASDEB%"
+set "PATH=%CASROOT%/%BIN_TAIL%;%PATH%"
rem ----- Set envoronment variables used by OCCT -----
set CSF_LANGUAGE=us
if exist "%CASROOT%\src\DrawResourcesProducts" (
set "CSF_DrawPluginProductsDefaults=%CASROOT%\src\DrawResourcesProducts"
-)
\ No newline at end of file
+)
+
export CASROOT="${aScriptPath}"
fi
-aLibPath="${CASROOT}/lib"
+# Read script arguments
+shopt -s nocasematch
+export CASDEB="@BUILD_SUFFIX@";
+if [[ "$1" == "debug" ]]; then export CASDEB="d"; fi
+if [[ "$1" == "d" ]]; then export CASDEB="d"; fi
+shopt -u nocasematch
-TCL_DIR="@3RDPARTY_TCL_DLL_DIR@"
+export COMPILER="@COMPILER@"
+
+# ----- Set path to 3rd party and OCCT libraries -----
+anArch=`uname -m`
+if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ]; then
+ export ARCH="32";
+else
+ export ARCH="64";
+fi
+
+aSystem=`uname -s`
+if [ "$aSystem" == "Darwin" ]; then
+ export WOKSTATION="mac";
+ export ARCH="64";
+else
+ export WOKSTATION="lin";
+fi
+
+# ----- Set local settings -----
+if [ -e "${aScriptPath}/custom.sh" ]; then
+ source "${aScriptPath}/custom.sh" "${COMPILER}" "${WOKSTATION}${ARCH}" "${CASDEB}"
+fi
+
+THRDPARTY_PATH=""
if [ "$TCL_DIR" != "" ]; then
- aLibPath="${TCL_DIR}:${aLibPath}"
+ THRDPARTY_PATH="${TCL_DIR}:${THRDPARTY_PATH}"
fi
-FREETYPE_DIR="@3RDPARTY_FREETYPE_DLL_DIR@"
if [ "$FREETYPE_DIR" != "" ]; then
- aLibPath="${FREETYPE_DIR}:${aLibPath}"
+ THRDPARTY_PATH="${FREETYPE_DIR}:${THRDPARTY_PATH}"
fi
-FREEIMAGE_DIR="@3RDPARTY_FREEIMAGE_DLL_DIR@"
if [ "$FREEIMAGE_DIR" != "" ]; then
- aLibPath="${FREEIMAGE_DIR}:${aLibPath}"
+ THRDPARTY_PATH="${FREEIMAGE_DIR}:${THRDPARTY_PATH}"
fi
-GL2PS_DIR="@3RDPARTY_GL2PS_DLL_DIR@"
if [ "$GL2PS_DIR" != "" ]; then
- aLibPath="${GL2PS_DIR}:${aLibPath}"
+ THRDPARTY_PATH="${GL2PS_DIR}:${THRDPARTY_PATH}"
fi
-TBB_DIR="@3RDPARTY_TBB_DLL_DIR@"
if [ "$TBB_DIR" != "" ]; then
- aLibPath="${TBB_DIR}:${aLibPath}"
+ THRDPARTY_PATH="${TBB_DIR}:${THRDPARTY_PATH}"
fi
-# ----- Set path to 3rd party and OCCT libraries -----
-aSystem=`uname -s`
-if [ "$aSystem" == "Darwin" ]; then
- export WOKSTATION="mac";
- if [ "$DYLD_LIBRARY_PATH" != "" ]; then
- export DYLD_LIBRARY_PATH="${aLibPath}:${DYLD_LIBRARY_PATH}"
- else
- export DYLD_LIBRARY_PATH="${aLibPath}"
- fi
-else
- export WOKSTATION="lin";
- if [ "$LD_LIBRARY_PATH" != "" ]; then
- export LD_LIBRARY_PATH="${aLibPath}:${LD_LIBRARY_PATH}"
+BIN_PATH="${WOKSTATION}${ARCH}/${COMPILER}/bin${CASDEB}"
+LIBS_PATH="${WOKSTATION}${ARCH}/${COMPILER}/lib${CASDEB}"
+
+export PATH="${CASROOT}/${BIN_PATH}:${THRDPARTY_PATH}:${PATH}"
+
+if [ "$LD_LIBRARY_PATH" != "" ]; then
+ export LD_LIBRARY_PATH="${CASROOT}/${LIBS_PATH}:${LD_LIBRARY_PATH}"
else
- export LD_LIBRARY_PATH="${aLibPath}"
+ export LD_LIBRARY_PATH="${CASROOT}/${LIBS_PATH}"
fi
fi
-# ----- Set path to OCCT executables -----
-PATH="${PATH}:${CASROOT}/bin"
-
-# ----- Setup Environment Variables -----
-anArch=`uname -m`
-if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ]; then
- export ARCH="32";
-else
- export ARCH="64";
-fi
-if [ "$aSystem" == "Darwin" ]; then
- export ARCH="64";
+if [ "$WOKSTATION" == "mac" ]; then
+ if [ "$DYLD_LIBRARY_PATH" != "" ]; then
+ export DYLD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${DYLD_LIBRARY_PATH}"
+ else
+ export DYLD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
+ fi
fi
# ----- Set envoronment variables used by OCCT -----
if [ -e "${CASROOT}/src/DrawResourcesProducts" ]; then
export CSF_DrawPluginProductsDefaults="${CASROOT}/src/DrawResourcesProducts"
-fi
\ No newline at end of file
+fi
+
if ["%1"] == [""] (
echo Launch selected sample as follows:
- echo sample.bat SampleName
+ echo sample.bat SampleName vc10 win32 d
+ echo or to use last sample build configuration:
+ echo sample.bat SampleName
echo available samples:
echo Geometry
echo Modeling
exit /B
)
-if not exist "%~dp0/bin/%1.exe" (
- echo Executable %~dp0/bin/%4.exe not found.
+call "%~dp0env.bat" %2 %3 %4
+
+if not exist "%~dp0/%BIN_TAIL%/%1.exe" (
+ echo Executable %~dp0/%BIN_TAIL%/%1.exe not found.
echo Probably you didn't compile the application.
exit /B
)
-call "%~dp0/env.bat"
+"%~dp0/%BIN_TAIL%/%1.exe"
-"%~dp0/bin/%1.exe"
## Decide on location of build and install directories.
The build directory is the one where intermediate files will be created (projects / makefiles, objects, binaries).
-The install directory is the one where binaries will be installed after build,
-along with header files and resources required for OCCT use in applications.
+Each configuration to be built should have its own build directory.
-OCCT CMake scripts assume use of separate build and one install directories
-for each configuration (Debug or Release).
+The install directory is the one where binaries will be installed after build, along with header files and resources required for OCCT use in applications.
+It is possible to install several configurations of OCCT (differentiated by platform, bitness, compiler, and build type) into the same directory.
It is recommended to separate build and install directories from OCCT source directory, for example:
- /user/home/occt/ - sources
- /user/home/tmp/occt-build-release - intermediate files (release)
- /user/home/occt-install-release - installed binaries (release)
+ /user/home/occt/ - sources
+ /user/home/tmp/occt-build-vc10-x64-release - intermediate files
+ /user/home/occt-install - installed binaries
## CMake usage
-Run CMake indicating path to OCCT sources ($CASROOT; in previous example
-CASROOT equal to /user/home/occt in lin case, and d:/occt in windows case)
-and selected build directory (in prev example build directory is
-/user/home/tmp/occt-build-release).
+Run CMake indicating path to OCCT sources ($CASROOT) and selected build directory.
-It is recommended to use GUI tools provided by CMake: cmake-gui on Windows
-and Mac, ccmake on Linux.
+It is recommended to use GUI tools provided by CMake: cmake-gui on Windows and Mac, ccmake or cmake-gui on Linux.
### Windows:
-@image html /dev_guides/building/cmake/images/cmake_image001.png
-@image latex /dev_guides/building/cmake/images/cmake_image001.png
+Specify the root folder of OCCT ($CASROOT, it contains CMakelists.txt file) by clicking Browse Source.
-* Specify "main" CMakelists.txt meta-project location by clicking Browse Source (e.g., $CASROOT)
-* Specify location (build folder) for Cmake generated project files by clicking Browse Build (e.g., d:/occt/build/win32-vc9-debug) (each cmake configuration of the project uses a specific build directory and a specific directory for installed files. It is recommended to compose names of the binary and install directory from system, bitness, compiler and build type.)
-* Configure opens the window with a drop-down list of generators supported by CMake project. Select the required generator (e.g., Visual Studio 2008) and click Finish)
+@figure{/dev_guides/building/cmake/images/cmake_image001.png}
-@image html /dev_guides/building/cmake/images/cmake_image002.png
-@image latex /dev_guides/building/cmake/images/cmake_image002.png
+Specify location (build folder) for Cmake generated project files by clicking Browse Build.
+Each configuration of the project should be built in its own directory.
+When building multiple configurations it is recommended to compose name of build directories including system, bitness, compiler, and build type (e.g., d:/occt/build/win32-vc9-debug).
-### Linux:
+Configure opens the window with a drop-down list of generators supported by CMake project. Select the required generator (e.g., Visual Studio 2008) and click Finish.
+
+@figure{/dev_guides/building/cmake/images/cmake_image002.png}
+
+### Linux (ccmake variant):
In the console, change to the build directory and call ccmake with the path to the source directory of the project:
> cd ~/occt/build/debug
> ccmake ~/occt
-@image html /dev_guides/building/cmake/images/cmake_image003.png
-@image latex /dev_guides/building/cmake/images/cmake_image003.png
+@figure{/dev_guides/building/cmake/images/cmake_image003.png}
Press "c" to configure.
+Use of *cmake-gui* is the same as described above for Windows.
+
### Mac OS:
Use cmake-gui (Applications -> CMake 2.8-10.app) to generate project files for the chosen build environment (e.g., XCode).
-@image html /dev_guides/building/cmake/images/cmake_image004.png
-@image latex /dev_guides/building/cmake/images/cmake_image004.png
+@figure{/dev_guides/building/cmake/images/cmake_image004.png}
## OCCT Configuration
configuration to be built:
* BUILD_CONFIGURATION - defines configuration to be built (Release by default).
-* BUILD_<MODULE> - specify whether corresponding OCCT module should be
- built (all toolkits). Note that even if whole module is not
- selected for build, its toolkits used by other toolkits
- selected for build will be included automatically.
-* BUILD_TOOLKITS - allows including additional toolkits from non-selected
- modules (should be list of toolkit names separated by a
- space or a semicolon).
-* BUILD_SAMPLES - specify whether OCCT MFC samples should be built.
+* BUILD_<MODULE> - specify whether corresponding OCCT module should be
+ built (all toolkits). Note that even if whole module is not
+ selected for build, its toolkits used by other toolkits
+ selected for build will be included automatically.
+* BUILD_TOOLKITS - allows including additional toolkits from non-selected
+ modules (should be list of toolkit names separated by a
+ space or a semicolon).
+* BUILD_SAMPLES - specify whether OCCT MFC samples should be built.
+* BUILD_PATCH_DIR - optionally specify additional folder containing patched OCCT source files.
+ The patch may contain arbitrary subset of OCCT source files (including CMake scripts, templates, etc.), organized in the same structure of folders as OCCT.
+ The projects generated by CMake will use files found in the patch folder instead of corresponding files of OCCT.
Check variables with "USE_" prefix (USE_FREEIMAGE, USE_GL2PS, USE_TBB, and
USE_OPENCL) if you want to enable use of the corresponding optional 3rd-party
library.
-### 3rd-party configuration
-
### 3rd-party configuration (The variables with 3RDPARTY_ prefix)
If you have 3rd-party libraries in a non-default location
(e.g., on Windows, binaries downloaded from "http://www.opencascade.org/getocc/download/3rdparty/"),
-specify 3RDPARTY_DIR variable that points to the folders of 3rdparty products (some or all).
-At the next configuration 3rd-party product paths stored in 3RDPARTY_\<PRODUCT\>_DIR variable
-will be searched for in 3RDPARTY_DIR directory. If the structure of 3RDPARTY_DIR directory
-is the same as adopted in the OCCT, the directory will contain product dir, lib and header files.
+specify 3RDPARTY_DIR variable that points to the folders of 3rdparty libraries (some or all).
+At the next configuration step the 3rd-party libraries will be searched for in 3RDPARTY_DIR directory, and stored in 3RDPARTY_\<LIBRARY\>_DIR variables.
+The procedure expects to find binary and header files of each 3rd-party library in its own sub-directory, separated by sub-directories *bin*, *lib*, and *include*.
Press "Configure" ("c" key for ccmake).
The result of the 3rdparty product search will be recorded in the corresponding variables:
* 3RDPARTY_\<PRODUCT\>_DIR - path to the product directory (with directory name) (e.g., D:/3rdparty/Tcl-8.5.12.0-32)
-* 3RDPARTY_\<PRODUCT\>_LIBRARY - path to the .lib libraries (with the library name) (e.g., D:/3rdparty/Tcl-8.5.12.0-32/lib/tcl85.lib). In non-windows case, this variable is the same as 3RDPARTY_\<PRODUCT\>_DLL.
+* 3RDPARTY_\<PRODUCT\>_LIBRARY - path to the .lib libraries (with the library name) (e.g., D:/3rdparty/Tcl-8.5.12.0-32/lib/tcl85.lib).
+ In non-windows case, this variable is the same as 3RDPARTY_\<PRODUCT\>_DLL.
* 3RDPARTY_\<PRODUCT\>_INCLUDE - path to the include directory that contains the required header file (with "include" name) (e.g., D:/3rdparty/Tcl-8.5.12.0-32/include including tcl.h)
* 3RDPARTY_\<PRODUCT\>_DLL - path to the .dll/.so/.dylib library (with the library name) (e.g., D:/3rdparty/Tcl-8.5.12.0-32/bin/tcl85.dll)
and the related variables: 3RDPARTY_FREETYPE_DLL, 3RDPARTY_FREETYPE_INCLUDE_DIR and 3RDPARTY_FREETYPE_LIBRARY will be cleared.
-@image html /dev_guides/building/cmake/images/cmake_image005.png
-@image latex /dev_guides/building/cmake/images/cmake_image005.png
+@figure{/dev_guides/building/cmake/images/cmake_image005.png}
During configuration process the cleaned variables will be filled with new found values.
When the configuration is complete, start the generation process by pressing "g".
-@image html /dev_guides/building/cmake/images/cmake_image006.png
-@image latex /dev_guides/building/cmake/images/cmake_image006.png
+@figure{/dev_guides/building/cmake/images/cmake_image006.png}
### Mac OS X
to move the above files to INSTALL_DIR.
Notice that env.sh (configure PATH and DYLD_LIBRARY_PATH environment variables
as well as Draw Harness extra variables) and draw.sh (to launch DRAWEXE) will be created in target directory.
-
-## OCCT project debugging for Visual Studio
-Run OCCT.bat from the build directory to start Visual Studio with required environment for debugging.
\ No newline at end of file
set_property(TARGET Geometry PROPERTY FOLDER Samples)
-install (TARGETS Geometry RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS Geometry RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${Geometry_SRC_DIR}
set_property (TARGET Modeling PROPERTY FOLDER Samples)
-install (TARGETS Modeling RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS Modeling RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${MFC_STANDARD_SAMPLES_DIR}/02_Modeling
set_property (TARGET Viewer2d PROPERTY FOLDER Samples)
-install (TARGETS Viewer2d RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS Viewer2d RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${MFC_STANDARD_SAMPLES_DIR}/03_Viewer2d
set_property (TARGET Viewer3d PROPERTY FOLDER Samples)
-install (TARGETS Viewer3d RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS Viewer3d RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${Viewer3d_SRC_DIR}
set_property (TARGET ImportExport PROPERTY FOLDER Samples)
-install (TARGETS ImportExport RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS ImportExport RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${MFC_STANDARD_SAMPLES_DIR}/05_ImportExport
set_property (TARGET Ocaf PROPERTY FOLDER Samples)
-install (TARGETS Ocaf RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS Ocaf RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${MFC_STANDARD_SAMPLES_DIR}/06_Ocaf
set_property (TARGET Triangulation PROPERTY FOLDER Samples)
-install (TARGETS Triangulation RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS Triangulation RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${MFC_STANDARD_SAMPLES_DIR}/07_Triangulation
set_property (TARGET HLR PROPERTY FOLDER Samples)
-install (TARGETS HLR RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS HLR RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${HLR_RESOURCE_DIR}
set_property (TARGET Animation PROPERTY FOLDER Samples)
-install (TARGETS Animation RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS Animation RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${Animation_RESOURCE_DIR}
set_property (TARGET Convert PROPERTY FOLDER Samples)
-install (TARGETS Convert RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS Convert RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories (${OCCT_ROOT}/inc
${Convert_SRC_DIR}
set_property (TARGET mfcsample PROPERTY FOLDER Samples)
-install (TARGETS mfcsample RUNTIME DESTINATION "${INSTALL_DIR}/bin"
- ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
- LIBRARY DESTINATION "${INSTALL_DIR}/lib")
+install (TARGETS mfcsample RUNTIME DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/bin${BUILD_SUFFIX}"
+ ARCHIVE DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}"
+ LIBRARY DESTINATION "${INSTALL_DIR}/win${COMPILER_BITNESS}/${COMPILER}/lib${BUILD_SUFFIX}")
include_directories( ${OCCT_ROOT}/inc
${MFC_STANDARD_COMMON_SAMPLES_DIR}