186 lines
4.7 KiB
CMake
186 lines
4.7 KiB
CMake
#add_defintions(-D_FC_GUI_ENABLED_)
|
|
#add_defintions(-DFREECADMAINPY)
|
|
|
|
configure_file(freecad.rc.cmake ${CMAKE_CURRENT_BINARY_DIR}/freecad.rc)
|
|
configure_file(freecadCmd.rc.cmake ${CMAKE_CURRENT_BINARY_DIR}/freecadCmd.rc)
|
|
file(COPY icon.ico DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
if(BUILD_GUI)
|
|
include_directories(
|
|
${Boost_INCLUDE_DIRS}
|
|
${COIN3D_INCLUDE_DIRS}
|
|
${ZLIB_INCLUDE_DIR}
|
|
${QT_INCLUDE_DIR}
|
|
${PYTHON_INCLUDE_DIRS}
|
|
${XercesC_INCLUDE_DIRS}
|
|
)
|
|
else(BUILD_GUI)
|
|
include_directories(
|
|
${Boost_INCLUDE_DIRS}
|
|
${ZLIB_INCLUDE_DIR}
|
|
${QT_INCLUDE_DIR}
|
|
${PYTHON_INCLUDE_DIRS}
|
|
${XercesC_INCLUDE_DIRS}
|
|
)
|
|
endif(BUILD_GUI)
|
|
|
|
######################## FreeCADMain ########################
|
|
if(BUILD_GUI)
|
|
|
|
SET(FreeCAD_SRCS
|
|
${CMAKE_CURRENT_BINARY_DIR}/freecad.rc
|
|
icon.ico
|
|
MainGui.cpp
|
|
)
|
|
|
|
SET(FreeCAD_LIBS
|
|
FreeCADGui
|
|
)
|
|
|
|
if (MSVC AND NOT BUILD_QT5)
|
|
list(APPEND FreeCAD_LIBS
|
|
${QT_QTMAIN_LIBRARY}
|
|
)
|
|
endif()
|
|
|
|
if(NOT BUILD_DYNAMIC_LINK_PYTHON)
|
|
# executables have to be linked against python libraries,
|
|
# because extension modules are not.
|
|
list(APPEND FreeCAD_LIBS
|
|
${PYTHON_LIBRARIES}
|
|
)
|
|
endif(NOT BUILD_DYNAMIC_LINK_PYTHON)
|
|
|
|
add_executable(FreeCADMain WIN32 ${FreeCAD_SRCS})
|
|
target_link_libraries(FreeCADMain ${FreeCAD_LIBS})
|
|
|
|
SET_BIN_DIR(FreeCADMain FreeCAD)
|
|
|
|
if(WIN32)
|
|
INSTALL(TARGETS FreeCADMain
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
elseif(APPLE AND NOT BUILD_WITH_CONDA)
|
|
INSTALL(TARGETS FreeCADMain
|
|
RUNTIME DESTINATION MacOS
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
else()
|
|
INSTALL(TARGETS FreeCADMain
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
)
|
|
endif()
|
|
endif(BUILD_GUI)
|
|
######################## FreeCADMainCmd ########################
|
|
|
|
SET(FreeCADMainCmd_SRCS
|
|
${CMAKE_CURRENT_BINARY_DIR}/freecadCmd.rc
|
|
icon.ico
|
|
MainCmd.cpp
|
|
)
|
|
|
|
add_executable(FreeCADMainCmd ${FreeCADMainCmd_SRCS})
|
|
|
|
SET(FreeCADMainCmd_LIBS
|
|
FreeCADApp
|
|
)
|
|
|
|
if (BUILD_QT5)
|
|
list(APPEND FreeCADMainCmd_LIBS
|
|
${Qt5Core_LIBRARIES}
|
|
${Qt5Xml_LIBRARIES}
|
|
)
|
|
else()
|
|
list(APPEND FreeCADMainCmd_LIBS
|
|
${QT_QTCORE_LIBRARY}
|
|
${QT_QTXML_LIBRARY}
|
|
)
|
|
endif()
|
|
|
|
if(NOT BUILD_DYNAMIC_LINK_PYTHON)
|
|
# executables have to be linked against python libraries,
|
|
# because extension modules are not.
|
|
list(APPEND FreeCADMainCmd_LIBS
|
|
${PYTHON_LIBRARIES}
|
|
)
|
|
endif(NOT BUILD_DYNAMIC_LINK_PYTHON)
|
|
|
|
target_link_libraries(FreeCADMainCmd
|
|
${FreeCADMainCmd_LIBS}
|
|
)
|
|
|
|
SET_BIN_DIR(FreeCADMainCmd FreeCADCmd)
|
|
|
|
if(WIN32)
|
|
INSTALL(TARGETS FreeCADMainCmd
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
elseif(APPLE AND NOT BUILD_WITH_CONDA)
|
|
INSTALL(TARGETS FreeCADMainCmd
|
|
RUNTIME DESTINATION MacOS
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
else()
|
|
INSTALL(TARGETS FreeCADMainCmd
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
)
|
|
endif()
|
|
|
|
######################## FreeCADMainPy ########################
|
|
|
|
SET(FreeCADMainPy_SRCS
|
|
MainPy.cpp
|
|
)
|
|
|
|
add_library(FreeCADMainPy SHARED ${FreeCADMainPy_SRCS})
|
|
|
|
target_link_libraries(FreeCADMainPy FreeCADApp)
|
|
|
|
SET_BIN_DIR(FreeCADMainPy FreeCAD)
|
|
SET_PYTHON_PREFIX_SUFFIX(FreeCADMainPy)
|
|
|
|
if(WIN32)
|
|
INSTALL(TARGETS FreeCADMainPy
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
else(WIN32)
|
|
INSTALL(TARGETS FreeCADMainPy
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
endif(WIN32)
|
|
|
|
######################## FreeCADGuiPy ########################
|
|
if(BUILD_GUI)
|
|
|
|
SET(FreeCADGuiPy_SRCS
|
|
FreeCADGuiPy.cpp
|
|
)
|
|
|
|
add_library(FreeCADGuiPy SHARED ${FreeCADGuiPy_SRCS})
|
|
|
|
target_link_libraries(FreeCADGuiPy FreeCADGui)
|
|
|
|
SET_BIN_DIR(FreeCADGuiPy FreeCADGui)
|
|
SET_PYTHON_PREFIX_SUFFIX(FreeCADGuiPy)
|
|
if(WIN32)
|
|
# Name clash with target "FreeCADGui"
|
|
# Must be called "FreeCADGuiPy_d" and "FreeCADGuiPy" to work so override default
|
|
set_target_properties(FreeCADGuiPy PROPERTIES PDB_NAME_DEBUG "FreeCADGuiPy_d")
|
|
set_target_properties(FreeCADGuiPy PROPERTIES PDB_NAME_RELEASE "FreeCADGuiPy")
|
|
endif(WIN32)
|
|
|
|
if(WIN32)
|
|
INSTALL(TARGETS FreeCADGuiPy
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
else(WIN32)
|
|
INSTALL(TARGETS FreeCADGuiPy
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
endif(WIN32)
|
|
endif(BUILD_GUI)
|