162 lines
4.3 KiB
CMake
162 lines
4.3 KiB
CMake
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
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})
|
|
|
|
######################## FreeCADMain ########################
|
|
if(BUILD_GUI)
|
|
|
|
SET(FreeCAD_SRCS
|
|
${CMAKE_CURRENT_BINARY_DIR}/freecad.rc
|
|
icon.ico
|
|
MainGui.cpp
|
|
)
|
|
|
|
SET(FreeCAD_LIBS
|
|
FreeCADGui
|
|
)
|
|
|
|
if(NOT BUILD_DYNAMIC_LINK_PYTHON)
|
|
# executables have to be linked against python libraries,
|
|
# because extension modules are not.
|
|
list(APPEND FreeCAD_LIBS
|
|
${Python3_LIBRARIES}
|
|
)
|
|
endif(NOT BUILD_DYNAMIC_LINK_PYTHON)
|
|
|
|
add_executable(FreeCADMain WIN32 ${FreeCAD_SRCS})
|
|
target_link_libraries(FreeCADMain ${FreeCAD_LIBS})
|
|
if (FREECAD_WARN_ERROR)
|
|
target_compile_warn_error(FreeCADMain)
|
|
endif()
|
|
|
|
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
|
|
${QtCore_LIBRARIES}
|
|
${QtXml_LIBRARIES}
|
|
)
|
|
|
|
if(NOT BUILD_DYNAMIC_LINK_PYTHON)
|
|
# executables have to be linked against python libraries,
|
|
# because extension modules are not.
|
|
list(APPEND FreeCADMainCmd_LIBS
|
|
${Python3_LIBRARIES}
|
|
)
|
|
endif(NOT BUILD_DYNAMIC_LINK_PYTHON)
|
|
|
|
target_link_libraries(FreeCADMainCmd
|
|
${FreeCADMainCmd_LIBS}
|
|
)
|
|
if (FREECAD_WARN_ERROR)
|
|
target_compile_warn_error(FreeCADMainCmd)
|
|
endif()
|
|
|
|
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)
|
|
if (FREECAD_WARN_ERROR)
|
|
target_compile_warn_error(FreeCADMainPy)
|
|
endif()
|
|
|
|
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)
|
|
if (FREECAD_WARN_ERROR)
|
|
target_compile_warn_error(FreeCADGuiPy)
|
|
endif()
|
|
|
|
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)
|