NOTE: this is purposely version 0.21, despite the release goal is 1.0 Since we issue weekly builds, people might otherwise misunderstand the version So first when the release goal is reached, FreeCAD becomes version 1.0
95 lines
2.8 KiB
CMake
95 lines
2.8 KiB
CMake
# March 2021, the oldest we have to support : Ununtu 18.04 LTS
|
|
cmake_minimum_required(VERSION 3.10.2 FATAL_ERROR)
|
|
|
|
# policy CMP0072 was introduced with CMake 3.11
|
|
# relates to FindOpenGL module
|
|
# and cache variables OPENGL_gl_LIBRARY, OPENGL_glu_LIBRARY
|
|
if (POLICY CMP0072)
|
|
cmake_policy(SET CMP0072 OLD)
|
|
endif(POLICY CMP0072)
|
|
|
|
find_program(CCACHE_PROGRAM ccache) #This check should occur before project()
|
|
if(CCACHE_PROGRAM)
|
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
|
|
endif()
|
|
|
|
project(FreeCAD)
|
|
|
|
set(PACKAGE_VERSION_NAME "Vulcan")
|
|
set(PACKAGE_VERSION_MAJOR "0")
|
|
set(PACKAGE_VERSION_MINOR "21")
|
|
set(PACKAGE_VERSION_PATCH "0")
|
|
set(PACKAGE_VERSION_SUFFIX "dev") # either "dev" for development snapshot or "" (empty string)
|
|
set(FREECAD_VERSION_PATCH "0") # number of patch release (e.g. "4" for the 0.18.4 release)
|
|
|
|
set(FREECAD_VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}")
|
|
set(PACKAGE_VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}")
|
|
set(PACKAGE_STRING "${PROJECT_NAME} ${PACKAGE_VERSION}")
|
|
|
|
# include local modules
|
|
include(CheckCXXCompilerFlag)
|
|
include(AddFileDependencies)
|
|
include(cMake/FreeCadMacros.cmake)
|
|
# include helper functions/macros
|
|
add_subdirectory(cMake/FreeCAD_Helpers)
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cMake")
|
|
|
|
CompilerChecksAndSetups()
|
|
ConfigureCMakeVariables()
|
|
InitializeFreeCADBuildOptions()
|
|
CheckInterModuleDependencies()
|
|
FreeCADLibpackChecks()
|
|
SetupDoxygen()
|
|
if(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER)
|
|
SetupPython()
|
|
SetupPCL()
|
|
SetupPybind11()
|
|
SetupXercesC()
|
|
find_package(ZLIB REQUIRED)
|
|
find_package(PyCXX REQUIRED)
|
|
SetupOpenCasCade()
|
|
if(BUILD_GUI)
|
|
# Do this before the check for SMESH because it depends on vtk
|
|
# that may have its own OpenGL check but possibly fails and leaves
|
|
# OPENGL_gl_LIBRARY empty that results into linker errors
|
|
SetupOpenGL()
|
|
endif(BUILD_GUI)
|
|
SetupSalomeSMESH()
|
|
SetupBoost()
|
|
if (BUILD_FEM_NETGEN)
|
|
find_package(NETGEN)
|
|
endif(BUILD_FEM_NETGEN)
|
|
# not needed at the moment
|
|
#find_package(OpenCV REQUIRED)
|
|
SetupSwig()
|
|
SetupEigen()
|
|
# This file is included directly due to some cMake macros that are defined within.
|
|
# If these macro definitions are embedded within another macro, it causes problems.
|
|
include(cMake/FreeCAD_Helpers/SetupQt.cmake)
|
|
SetupFreetype()
|
|
|
|
if(BUILD_GUI)
|
|
SetupCoin3D()
|
|
SetupSpaceball()
|
|
SetupShibokenAndPyside()
|
|
SetupMatplotlib()
|
|
endif(BUILD_GUI)
|
|
endif(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER)
|
|
|
|
if(BUILD_VR)
|
|
find_package(Rift)
|
|
endif(BUILD_VR)
|
|
|
|
SetLibraryVersions()
|
|
SetGlobalCompilerAndLinkerSettings()
|
|
|
|
add_subdirectory(src)
|
|
add_subdirectory(data)
|
|
|
|
BuildAndInstallDesignerPlugin()
|
|
|
|
CreatePackagingTargets()
|
|
|
|
PrintFinalReport()
|