Files
create/src/Main/CMakeLists.txt
2020-02-15 19:08:46 +01:00

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)