Files
create/src/Base/CMakeLists.txt

322 lines
7.5 KiB
CMake

if(WIN32)
add_definitions(-DFCBase)
add_definitions(-DPYCXX_DLL)
add_definitions(-DBOOST_DYN_LINK)
endif(WIN32)
include_directories(
${CMAKE_BINARY_DIR}/src
${CMAKE_SOURCE_DIR}/src
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${Boost_INCLUDE_DIRS}
${PYTHON_INCLUDE_PATH}
${XERCESC_INCLUDE_DIR}
${QT_QTCORE_INCLUDE_DIR}
${ZLIB_INCLUDE_DIR}
)
if(MSVC)
set(FreeCADBase_LIBS
${Boost_LIBRARIES}
${Boost_DEBUG_LIBRARIES}
debug ${PYTHON_DEBUG_LIBRARY}
optimized ${PYTHON_LIBRARY}
debug ${XERCESC_DEBUG_LIBRARIES}
optimized ${XERCESC_LIBRARIES}
${QT_QTCORE_LIBRARY}
${QT_QTCORE_LIBRARY_DEBUG}
${ZLIB_LIBRARIES}
debug MSVCRTD.LIB
debug MSVCPRTD.LIB
optimized MSVCRT.LIB
optimized MSVCPRT.LIB
Rpcrt4.lib
)
elseif(MINGW)
set(FreeCADBase_LIBS
${PYTHON_LIBRARY}
${XERCESC_LIBRARIES}
${QT_QTCORE_LIBRARY}
${Boost_LIBRARIES}
${ZLIB_LIBRARIES}
Rpcrt4.lib
)
else(MSVC)
set(FreeCADBase_LIBS
${PYTHON_LIBRARY}
${XERCESC_LIBRARIES}
${QT_QTCORE_LIBRARY}
${Boost_LIBRARIES}
${ZLIB_LIBRARIES}
-lutil
-ldl
)
endif(MSVC)
generate_from_xml(BaseClassPy)
generate_from_xml(BoundBoxPy)
generate_from_xml(PersistencePy)
generate_from_xml(VectorPy)
generate_from_xml(MatrixPy)
generate_from_xml(RotationPy)
generate_from_xml(PlacementPy)
generate_from_xml(AxisPy)
if(SWIG_FOUND)
execute_process(COMMAND ${SWIG_EXECUTABLE} -python -external-runtime ${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h)
add_definitions(-DHAVE_SWIG=1)
endif(SWIG_FOUND)
SET(zipios_SRCS
../zipios++/backbuffer.h
../zipios++/basicentry.cpp
../zipios++/basicentry.h
../zipios++/collcoll.cpp
../zipios++/collcoll.h
../zipios++/deflateoutputstreambuf.cpp
../zipios++/deflateoutputstreambuf.h
../zipios++/dircoll.cpp
../zipios++/dircoll.h
../zipios++/directory.cpp
../zipios++/directory.h
../zipios++/fcoll.cpp
../zipios++/fcoll.h
../zipios++/fcollexceptions.cpp
../zipios++/fcollexceptions.h
../zipios++/fileentry.cpp
../zipios++/fileentry.h
../zipios++/filepath.cpp
../zipios++/filepath.h
../zipios++/filterinputstreambuf.cpp
../zipios++/filterinputstreambuf.h
../zipios++/filteroutputstreambuf.cpp
../zipios++/filteroutputstreambuf.h
../zipios++/gzipoutputstream.cpp
../zipios++/gzipoutputstream.h
../zipios++/gzipoutputstreambuf.cpp
../zipios++/gzipoutputstreambuf.h
../zipios++/inflateinputstreambuf.cpp
../zipios++/inflateinputstreambuf.h
../zipios++/meta-iostreams.h
../zipios++/outputstringstream.h
../zipios++/simplesmartptr.h
../zipios++/virtualseeker.h
../zipios++/zipfile.cpp
../zipios++/zipfile.h
../zipios++/ziphead.cpp
../zipios++/ziphead.h
../zipios++/zipheadio.cpp
../zipios++/zipheadio.h
../zipios++/zipinputstream.cpp
../zipios++/zipinputstream.h
../zipios++/zipinputstreambuf.cpp
../zipios++/zipinputstreambuf.h
../zipios++/zipios_common.h
../zipios++/zipios-config.h
../zipios++/zipios_defs.h
../zipios++/zipoutputstreambuf.cpp
../zipios++/zipoutputstreambuf.h
../zipios++/zipoutputstream.cpp
../zipios++/zipoutputstream.h
)
SOURCE_GROUP("zipios" FILES ${zipios_SRCS})
SET(pycxx_SRCS
../CXX/Config.hxx
../CXX/cxxextensions.c
../CXX/cxx_extensions.cxx
../CXX/cxxsupport.cxx
../CXX/Exception.hxx
../CXX/Extensions.hxx
../CXX/IndirectPythonInterface.cxx
../CXX/IndirectPythonInterface.hxx
../CXX/Objects.hxx
../CXX/Version.hxx
../CXX/WrapPython.h
)
SOURCE_GROUP("pycxx" FILES ${pycxx_SRCS})
SET(FreeCADBase_XML_SRCS
AxisPy.xml
BaseClassPy.xml
BoundBoxPy.xml
MatrixPy.xml
PersistencePy.xml
PlacementPy.xml
RotationPy.xml
VectorPy.xml
)
SOURCE_GROUP("XML" FILES ${FreeCADBase_XML_SRCS})
set(FreeCADBase_MOC_HDRS
FutureWatcherProgress.h
)
fc_wrap_cpp(FreeCADBase_MOC_SRCS ${FreeCADBase_MOC_HDRS})
SET(FreeCADBase_UNITAPI_SRCS
UnitsApi.cpp
UnitsApiPy.cpp
UnitsApi.h
UnitsSchema.h
UnitsSchema.cpp
UnitsSchemaInternal.h
UnitsSchemaInternal.cpp
UnitsSchemaMKS.h
UnitsSchemaMKS.cpp
UnitsSchemaImperial1.h
UnitsSchemaImperial1.cpp
UnitsApi.y
UnitsApi.l
)
SOURCE_GROUP("Units" FILES ${FreeCADBase_UNITAPI_SRCS})
SET(FreeCADBase_CPP_SRCS
Axis.cpp
AxisPyImp.cpp
Base64.cpp
BaseClass.cpp
BaseClassPyImp.cpp
BoundBoxPyImp.cpp
Builder3D.cpp
Console.cpp
Exception.cpp
Factory.cpp
FileInfo.cpp
FileTemplate.cpp
FutureWatcherProgress.cpp
gzstream.cpp
gzstream.h
GeometryPyCXX.cpp
Handle.cpp
InputSource.cpp
Interpreter.cpp
Matrix.cpp
MatrixPyImp.cpp
MemDebug.cpp
Parameter.cpp
ParameterPy.cpp
Persistence.cpp
PersistencePyImp.cpp
Placement.cpp
PlacementPyImp.cpp
PyExport.cpp
PyObjectBase.cpp
Reader.cpp
Rotation.cpp
RotationPyImp.cpp
Sequencer.cpp
Stream.cpp
Swap.cpp
swigpyrun_1.3.25.cpp
swigpyrun_1.3.33.cpp
swigpyrun_1.3.36.cpp
swigpyrun_1.3.38.cpp
swigpyrun_1.3.40.cpp
swigpyrun.cpp
TimeInfo.cpp
Tools.cpp
Tools2D.cpp
Type.cpp
Uuid.cpp
Vector3D.cpp
VectorPyImp.cpp
Writer.cpp
XMLTools.cpp
)
SET(FreeCADBase_HPP_SRCS
Axis.h
Base64.h
BaseClass.h
BoundBox.h
Builder3D.h
Console.h
Exception.h
Factory.h
FileInfo.h
FileTemplate.h
FutureWatcherProgress.h
fdstream.hpp
gzstream.h
GeometryPyCXX.h
Handle.h
InputSource.h
Interpreter.h
Matrix.h
MemDebug.h
Observer.h
Parameter.h
Persistence.h
Placement.h
PyExport.h
PyObjectBase.h
Reader.h
Rotation.h
Sequencer.h
Stream.h
Swap.h
swigpyrun_1.3.25.h
swigpyrun_1.3.33.h
swigpyrun_1.3.36.h
swigpyrun_1.3.38.h
swigpyrun_1.3.40.h
swigpyrun.inl
TimeInfo.h
Tools.h
Tools2D.h
Type.h
Uuid.h
Vector3D.h
ViewProj.h
Writer.h
XMLTools.h
)
SET(FreeCADBase_SRCS
${zipios_SRCS}
${pycxx_SRCS}
${FreeCADBase_CPP_SRCS}
${FreeCADBase_HPP_SRCS}
${FreeCADBase_XML_SRCS}
${FreeCADBase_UNITAPI_SRCS}
PyTools.c
PyTools.h
PreCompiled.cpp
PreCompiled.h
)
if(MSVC)
add_definitions(-D_PreComp_)
ADD_MSVC_PRECOMPILED_HEADER("PreCompiled.h" "PreCompiled.cpp" FreeCADBase_CPP_SRCS)
endif(MSVC)
add_library(FreeCADBase SHARED ${FreeCADBase_SRCS})
target_link_libraries(FreeCADBase ${FreeCADBase_LIBS})
# Note this is IDE specific, not necessarily platform specific
if(MSVC)
set_target_properties(FreeCADBase PROPERTIES DEBUG_OUTPUT_NAME "FreeCADBaseD")
set_target_properties(FreeCADBase PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# dirty hack to avoid Debug/Release subdirectory
set_target_properties(FreeCADBase PROPERTIES PREFIX "../")
elseif(MINGW)
set_target_properties(FreeCADBase PROPERTIES DEBUG_OUTPUT_NAME "FreeCADBaseD")
set_target_properties(FreeCADBase PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
else(MSVC)
set_target_properties(FreeCADBase PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set_target_properties(FreeCADBase PROPERTIES INSTALL_RPATH ${INSTALL_RPATH})
endif(MSVC)
if(WIN32)
INSTALL(TARGETS FreeCADBase
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
)
else(WIN32)
INSTALL(TARGETS FreeCADBase
LIBRARY DESTINATION lib
)
endif(WIN32)