Add support for CLbundler created LibPack

* New 'UseLibPack' cmake file sets CMAKE_PREFIX_PATH so that find_package
  can be used for most packages.
* Mimic fc_wrap_cpp defined in other 'UseLibPack' files. Some file
  dependencies did not get set correctly otherwise.
* OCE 0.16 does not have Standard_ctype.hxx
* shfolder.h can't be used with Win SDK 7.0
This commit is contained in:
Peter Lama 2014-10-23 17:23:38 -07:00
parent 039cacbfde
commit f13f5dc520
12 changed files with 126 additions and 49 deletions

View File

@ -314,6 +314,7 @@ if(FREECAD_LIBPACK_USE)
find_file(FREECAD_LIBPACK_CHECKFILE9X boost_program_options-vc90-mt-gd-1_54.lib ${FREECAD_LIBPACK_DIR}/lib ) find_file(FREECAD_LIBPACK_CHECKFILE9X boost_program_options-vc90-mt-gd-1_54.lib ${FREECAD_LIBPACK_DIR}/lib )
find_file(FREECAD_LIBPACK_CHECKFILE10X boost_program_options-vc110-mt-1_55.lib ${FREECAD_LIBPACK_DIR}/lib ) find_file(FREECAD_LIBPACK_CHECKFILE10X boost_program_options-vc110-mt-1_55.lib ${FREECAD_LIBPACK_DIR}/lib )
find_file(FREECAD_LIBPACK_CHECKCUSTOM boost_program_options-vc90-mt-gd-1_41.lib ${FREECAD_LIBPACK_DIR}/lib ) find_file(FREECAD_LIBPACK_CHECKCUSTOM boost_program_options-vc90-mt-gd-1_41.lib ${FREECAD_LIBPACK_DIR}/lib )
find_file(FREECAD_LIBPACK_CHECKFILE_CLBUNDLER MANIFEST.db ${FREECAD_LIBPACK_DIR})
# don't show them in the GUI # don't show them in the GUI
set(FREECAD_LIBPACK_CHECKFILE6X "${FREECAD_LIBPACK_CHECKFILE6X}" CACHE INTERNAL "Find libpack") set(FREECAD_LIBPACK_CHECKFILE6X "${FREECAD_LIBPACK_CHECKFILE6X}" CACHE INTERNAL "Find libpack")
@ -322,8 +323,12 @@ if(FREECAD_LIBPACK_USE)
set(FREECAD_LIBPACK_CHECKFILE9X "${FREECAD_LIBPACK_CHECKFILE9X}" CACHE INTERNAL "Find libpack") set(FREECAD_LIBPACK_CHECKFILE9X "${FREECAD_LIBPACK_CHECKFILE9X}" CACHE INTERNAL "Find libpack")
set(FREECAD_LIBPACK_CHECKFILE10X "${FREECAD_LIBPACK_CHECKFILE10X}" CACHE INTERNAL "Find libpack") set(FREECAD_LIBPACK_CHECKFILE10X "${FREECAD_LIBPACK_CHECKFILE10X}" CACHE INTERNAL "Find libpack")
set(FREECAD_LIBPACK_CHECKCUSTOM "${FREECAD_LIBPACK_CHECKCUSTOM}" CACHE INTERNAL "Find libpack") set(FREECAD_LIBPACK_CHECKCUSTOM "${FREECAD_LIBPACK_CHECKCUSTOM}" CACHE INTERNAL "Find libpack")
set(FREECAD_LIBPACK_CHECKFILE_CLBUNDLER "${FREECAD_LIBPACK_CHECKFILE_CLBUNDLER}" CACHE INTERNAL "Find libpack")
IF(FREECAD_LIBPACK_CHECKFILE6X) IF(FREECAD_LIBPACK_CHECKFILE_CLBUNDLER)
set(FREECAD_LIBPACK_VERSION "CLbundler" CACHE STRING "Displays if the libpack has been found" FORCE)
include(cMake/UseLibPackCLbundler.cmake)
ELSEIF(FREECAD_LIBPACK_CHECKFILE6X)
set(FREECAD_LIBPACK_VERSION "6.x" CACHE STRING "Displays if the libpack has been found" FORCE) set(FREECAD_LIBPACK_VERSION "6.x" CACHE STRING "Displays if the libpack has been found" FORCE)
include(cMake/UseLibPack6x.cmake) include(cMake/UseLibPack6x.cmake)
ELSEIF(FREECAD_LIBPACK_CHECKFILE7X) ELSEIF(FREECAD_LIBPACK_CHECKFILE7X)
@ -372,7 +377,9 @@ if(FREECAD_LIBPACK_USE)
find_package(PySideTools REQUIRED) # Pyside utilities (pyside-uic & pyside-rcc) find_package(PySideTools REQUIRED) # Pyside utilities (pyside-uic & pyside-rcc)
else(FREECAD_LIBPACK_USE) endif(FREECAD_LIBPACK_USE)
if(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER)
# ================================================================================ # ================================================================================
# == for other OSes search the packages ========================================== # == for other OSes search the packages ==========================================
@ -436,7 +443,6 @@ else(FREECAD_LIBPACK_USE)
find_package (OCE QUIET) find_package (OCE QUIET)
if(${OCE_FOUND}) if(${OCE_FOUND})
message("-- OpenCASCADE Community Edition has been found.") message("-- OpenCASCADE Community Edition has been found.")
add_definitions (-DHAVE_CONFIG_H)
#lib list copied from FreeCAD's FindOpenCasCade.cmake #lib list copied from FreeCAD's FindOpenCasCade.cmake
set(OCC_LIBRARIES set(OCC_LIBRARIES
TKFillet TKFillet
@ -472,6 +478,8 @@ else(FREECAD_LIBPACK_USE)
TKXDEIGES TKXDEIGES
TKMeshVS TKMeshVS
) )
set(OCC_INCLUDE_DIR ${OCE_INCLUDE_DIRS})
CHECK_MINIMUM_OCC_VERSION_HEX(0x060703) CHECK_MINIMUM_OCC_VERSION_HEX(0x060703)
if (NOT OCC_MIN_VERSION) if (NOT OCC_MIN_VERSION)
set(OCC_OCAF_LIBRARIES set(OCC_OCAF_LIBRARIES
@ -479,7 +487,7 @@ else(FREECAD_LIBPACK_USE)
TKAdvTools TKAdvTools
) )
endif() endif()
set(OCC_INCLUDE_DIR ${OCE_INCLUDE_DIRS})
set(OCC_FOUND ${OCE_FOUND}) set(OCC_FOUND ${OCE_FOUND})
else() #look for OpenCASCADE else() #look for OpenCASCADE
find_package(OpenCasCade) find_package(OpenCasCade)
@ -582,7 +590,11 @@ else(FREECAD_LIBPACK_USE)
foreach(it ${moc_files}) foreach(it ${moc_files})
get_filename_component(it ${it} ABSOLUTE) get_filename_component(it ${it} ABSOLUTE)
QT4_MAKE_OUTPUT_FILE(${it} moc_ cpp outfile) QT4_MAKE_OUTPUT_FILE(${it} moc_ cpp outfile)
QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}" "${moc_target}") ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
COMMAND ${QT_MOC_EXECUTABLE}
ARGS ${moc_options} ${it} -o ${outfile}
MAIN_DEPENDENCY ${it}
)
set(${outfiles} ${${outfiles}} ${outfile}) set(${outfiles} ${${outfiles}} ${outfile})
add_file_dependencies(${it} ${outfile}) add_file_dependencies(${it} ${outfile})
endforeach(it) endforeach(it)
@ -648,7 +660,7 @@ else(FREECAD_LIBPACK_USE)
endif(BUILD_GUI) endif(BUILD_GUI)
endif(FREECAD_LIBPACK_USE) endif(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER)
if(BUILD_VR) if(BUILD_VR)
find_package(Rift) find_package(Rift)
@ -685,7 +697,7 @@ ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
IF(MSVC) IF(MSVC)
# set default compiler settings # set default compiler settings
SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /EHa") SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /EHa")
SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG") SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG /Zm128")
# set default libs # 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 winmm.lib comsupp.lib Ws2_32.lib dbghelp.lib ") 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 winmm.lib comsupp.lib Ws2_32.lib dbghelp.lib ")
set (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES}") set (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES}")

View File

@ -15,7 +15,10 @@ FIND_LIBRARY(NGLIB_LIBRARIES nglib /usr/lib /usr/local/lib)
SET(NETGEN_INCLUDE_DIRS) SET(NETGEN_INCLUDE_DIRS)
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} -DNO_PARALLEL_THREADS -DOCCGEOMETRY) SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} -DNO_PARALLEL_THREADS -DOCCGEOMETRY)
SET(NETGENDATA /usr/share/netgen/libsrc) if(NOT NETGENDATA)
SET(NETGENDATA /usr/share/netgen/libsrc)
endif()
FIND_PATH(NETGEN_DIR_csg csg.hpp PATHS ${NETGENDATA}/csg) FIND_PATH(NETGEN_DIR_csg csg.hpp PATHS ${NETGENDATA}/csg)
FIND_PATH(NETGEN_DIR_gen array.hpp PATHS ${NETGENDATA}/general) FIND_PATH(NETGEN_DIR_gen array.hpp PATHS ${NETGENDATA}/general)
FIND_PATH(NETGEN_DIR_geom2d geom2dmesh.hpp PATHS ${NETGENDATA}/geom2d) FIND_PATH(NETGEN_DIR_geom2d geom2dmesh.hpp PATHS ${NETGENDATA}/geom2d)

View File

@ -132,12 +132,8 @@ set(QT_DEBUG_LIBRARIES
debug QtWebKitd4.lib debug QtWebKitd4.lib
) )
set(QT_QTCORE_LIBRARY_DEBUG
debug QtCored4.lib
)
set(QT_QTCORE_LIBRARY set(QT_QTCORE_LIBRARY
optimized QtCore4.lib optimized QtCore4.lib debug QtCored4.lib
) )
set(QT_QT3SUPPORT_LIBRARY_DEBUG set(QT_QT3SUPPORT_LIBRARY_DEBUG

View File

@ -137,12 +137,9 @@ set(QT_DEBUG_LIBRARIES
debug QtWebKitd4.lib debug QtWebKitd4.lib
) )
set(QT_QTCORE_LIBRARY_DEBUG
debug QtCored4.lib
)
set(QT_QTCORE_LIBRARY set(QT_QTCORE_LIBRARY
optimized QtCore4.lib optimized QtCore4.lib
debug QtCored4.lib
) )
set(QT_UIC_EXECUTABLE ${FREECAD_LIBPACK_DIR}/bin/uic.exe) set(QT_UIC_EXECUTABLE ${FREECAD_LIBPACK_DIR}/bin/uic.exe)

View File

@ -140,12 +140,9 @@ set(QT_DEBUG_LIBRARIES
debug QtWebKitd4.lib debug QtWebKitd4.lib
) )
set(QT_QTCORE_LIBRARY_DEBUG
debug QtCored4.lib
)
set(QT_QTCORE_LIBRARY set(QT_QTCORE_LIBRARY
optimized QtCore4.lib optimized QtCore4.lib
debug QtCored4.lib
) )
set(QT_QT3SUPPORT_LIBRARY_DEBUG set(QT_QT3SUPPORT_LIBRARY_DEBUG

View File

@ -0,0 +1,87 @@
set(ENV{PATH} "${FREECAD_LIBPACK_DIR};$ENV{PATH}")
set(ENV{CMAKE_PREFIX_PATH} ${FREECAD_LIBPACK_DIR})
set(Boost_INCLUDE_DIR ${FREECAD_LIBPACK_DIR}/include CACHE PATH "" FORCE)
set(OCE_DIR ${FREECAD_LIBPACK_DIR}/lib/cmake CACHE PATH "" FORCE)
set(SWIG_EXECUTABLE ${FREECAD_LIBPACK_DIR}/bin/swig/swig.exe CACHE FILEPATH "Swig" FORCE)
set(PYTHON_EXECUTABLE ${FREECAD_LIBPACK_DIR}/bin/python.exe CACHE FILEPATH "" FORCE)
set(PYTHON_LIBRARY ${FREECAD_LIBPACK_DIR}/lib/python27.lib CACHE FILEPATH "" FORCE)
set(PYTHON_DEBUG_LIBRARY ${FREECAD_LIBPACK_DIR}/lib/python27_d.lib CACHE FILEPATH "" FORCE)
set(PYTHON_INCLUDE_DIR ${FREECAD_LIBPACK_DIR}/include/python2.7 CACHE PATH "" FORCE)
find_library(XERCESC_LIBRARIES xerces-c_3 "${FREECAD_LIBPACK_DIR}/lib")
find_library(XERCESC_DEBUG_LIBRARIES xerces-c_3D "${FREECAD_LIBPACK_DIR}/lib")
set(XERCESC_FOUND TRUE)
find_library(COIN3D_LIBRARY_RELEASE coin4 "${FREECAD_LIBPACK_DIR}/lib")
find_library(COIN3D_LIBRARY_DEBUG coin4d "${FREECAD_LIBPACK_DIR}/lib")
set(COIN3D_FOUND TRUE)
set(NETGENDATA ${FREECAD_LIBPACK_DIR}/include/netgen)
if(FREECAD_USE_FREETYPE)
set(FREETYPE_INCLUDE_DIR_freetype2 ${FREECAD_LIBPACK_DIR}/include/freetype2)
endif(FREECAD_USE_FREETYPE)
link_directories(${FREECAD_LIBPACK_DIR}/lib)
set(PCL_INCLUDE_DIRS ${FREECAD_LIBPACK_DIR}/include/pcl-1.7)
set(PCL_LIBRARY_DIRS ${FREECAD_LIBPACK_DIR}/lib)
set(PCL_COMMON_LIBRARIES optimized pcl_common_release debug pcl_common_debug)
set(PCL_FEATURES_LIBRARIES optimized pcl_features_release debug pcl_features_debug)
set(PCL_FILTERS_LIBRARIES optimized pcl_filters_release debug pcl_filters_debug)
set(PCL_IO_LIBRARIES optimized pcl_io_release debug pcl_io_debug)
set(PCL_IO_PLY_LIBRARIES optimized pcl_io_ply_release debug pcl_io_ply_debug)
set(PCL_KDTREE_LIBRARIES optimized pcl_kdtree_release debug pcl_kdtree_debug)
set(PCL_KEYPOINTS_LIBRARIES optimized pcl_keypoints_release debug pcl_keypoints_debug)
set(PCL_ML_LIBRARIES optimized pcl_ml_release debug pcl_ml_debug)
set(PCL_OCTREE_LIBRARIES optimized pcl_octree_release debug pcl_octree_debug)
set(PCL_RECOGNITION_LIBRARIES optimized pcl_recognition_release debug pcl_recognition_debug)
set(PCL_REGISTRATION_LIBRARIES optimized pcl_registration_release debug pcl_registration_debug)
set(PCL_SAMPLE_CONSENSUS_LIBRARIES optimized pcl_sample_consensus_release debug pcl_sample_consensus_debug)
set(PCL_SEARCH_LIBRARIES optimized pcl_search_release debug pcl_search_debug)
set(PCL_SEGMENTATION_LIBRARIES optimized pcl_segmentation_release debug pcl_segmentation_debug)
set(PCL_STEREO_LIBRARIES optimized pcl_stereo_release debug pcl_stereo_debug)
set(PCL_SURFACE_LIBRARIES optimized pcl_surface_release debug pcl_surface_debug)
set(PCL_TRACKING_LIBRARIES optimized pcl_tracking_release debug pcl_tracking_debug)
set(PCL_LIBRARIES
${PCL_COMMON_LIBRARIES}
${PCL_FEATURES_LIBRARIES}
${PCL_FILTERS_LIBRARIES}
${PCL_IO_LIBRARIES}
${PCL_IO_PLY_LIBRARIES}
${PCL_KDTREE_LIBRARIES}
${PCL_KEYPOINTS_LIBRARIES}
${PCL_ML_LIBRARIES}
${PCL_OCTREE_LIBRARIES}
${PCL_RECOGNITION_LIBRARIES}
${PCL_REGISTRATION_LIBRARIES}
${PCL_SAMPLE_CONSENSUS_LIBRARIES}
${PCL_SEARCH_LIBRARIES}
${PCL_SEGMENTATION_LIBRARIES}
${PCL_STEREO_LIBRARIES}
${PCL_SURFACE_LIBRARIES}
${PCL_TRACKING_LIBRARIES}
)
set(PCL_FOUND TRUE)
set(PCL_COMMON_FOUND TRUE)
set(PCL_FEATURES_FOUND TRUE)
set(PCL_FILTERS_FOUND TRUE)
set(PCL_IO_FOUND TRUE)
set(PCL_IO_PLY_FOUND TRUE)
set(PCL_KDTREE_FOUND TRUE)
set(PCL_KEYPOINTS_FOUND TRUE)
set(PCL_ML_FOUND TRUE)
set(PCL_OCTREE_FOUND TRUE)
set(PCL_RECOGNITION_FOUND TRUE)
set(PCL_REGISTRATION_FOUND TRUE)
set(PCL_SAMPLE_CONSENSUS_FOUND TRUE)
set(PCL_SEARCH_FOUND TRUE)
set(PCL_SEGMENTATION_FOUND TRUE)
set(PCL_STEREO_FOUND TRUE)
set(PCL_SURFACE_FOUND TRUE)
set(PCL_TRACKING_FOUND TRUE)

View File

@ -9,6 +9,13 @@ SET(SMESH_VERSION_TWEAK 2)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
include_directories( include_directories(
inc
src/SMDS
src/Driver
src/DriverUNV
src/DriverDAT
src/DriverSTL
src/StdMeshers
${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src
${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
@ -16,13 +23,6 @@ include_directories(
${OCC_INCLUDE_DIR} ${OCC_INCLUDE_DIR}
${NGLIB_INCLUDE_DIR} ${NGLIB_INCLUDE_DIR}
${NETGEN_INCLUDE_DIRS} ${NETGEN_INCLUDE_DIRS}
src/SMDS
src/Driver
src/DriverUNV
src/DriverDAT
src/DriverSTL
src/StdMeshers
inc
) )
link_directories(${OCC_LIBRARY_DIR}) link_directories(${OCC_LIBRARY_DIR})

View File

@ -45,10 +45,6 @@
#ifdef FC_OS_WIN32 #ifdef FC_OS_WIN32
# include <Shlobj.h> # include <Shlobj.h>
// Doesn't seem to work with VS2010
# if (defined(_MSC_VER) && (_MSC_VER < 1600))
# include <Shfolder.h>
# endif
#endif #endif

View File

@ -26,7 +26,6 @@ if(MSVC)
debug ${XERCESC_DEBUG_LIBRARIES} debug ${XERCESC_DEBUG_LIBRARIES}
optimized ${XERCESC_LIBRARIES} optimized ${XERCESC_LIBRARIES}
${QT_QTCORE_LIBRARY} ${QT_QTCORE_LIBRARY}
${QT_QTCORE_LIBRARY_DEBUG}
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
debug MSVCRTD.LIB debug MSVCRTD.LIB
debug MSVCPRTD.LIB debug MSVCPRTD.LIB

View File

@ -114,7 +114,7 @@
#include <Standard_Underflow.hxx> #include <Standard_Underflow.hxx>
#include <Standard_UUID.hxx> #include <Standard_UUID.hxx>
#include <Standard_WayOfLife.hxx> #include <Standard_WayOfLife.hxx>
#if OCC_VERSION_HEX < 0x060800 #if OCC_VERSION_HEX < 0x060700
#include <Standard_ctype.hxx> #include <Standard_ctype.hxx>
#include <Standard_OId.hxx> #include <Standard_OId.hxx>
#endif #endif

View File

@ -20,7 +20,6 @@ include_directories(
set(Mesh_LIBS set(Mesh_LIBS
${Boost_LIBRARIES} ${Boost_LIBRARIES}
${QT_QTCORE_LIBRARY} ${QT_QTCORE_LIBRARY}
${QT_QTCORE_LIBRARY_DEBUG}
FreeCADBase FreeCADBase
FreeCADApp FreeCADApp
) )

View File

@ -20,20 +20,11 @@ include_directories(
) )
link_directories(${OCC_LIBRARY_DIR}) link_directories(${OCC_LIBRARY_DIR})
if(MSVC) set(Robot_LIBS
set(Robot_LIBS
Part
${QT_QTCORE_LIBRARY}
${QT_QTCORE_LIBRARY_DEBUG}
FreeCADApp
)
else(MSVC)
set(Robot_LIBS
Part Part
${QT_QTCORE_LIBRARY} ${QT_QTCORE_LIBRARY}
FreeCADApp FreeCADApp
) )
endif(MSVC)
FILE( GLOB KDL_SRCS kdl_cp/[^.]*.cpp ) FILE( GLOB KDL_SRCS kdl_cp/[^.]*.cpp )
FILE( GLOB KDL_HPPS kdl_cp/[^.]*.hpp kdl_cp/[^.]*.inl) FILE( GLOB KDL_HPPS kdl_cp/[^.]*.hpp kdl_cp/[^.]*.inl)