Skip to content

Commit

Permalink
Widespread use of AUTOMOC
Browse files Browse the repository at this point in the history
For many people it's unclear where to put headers in CMakeFiles.txt
If they should be duplicated in both moc and non moc header sections.
And if private headers should be included as well.
The good news is that CMake is able to figure out itself which headers
need moc'ing by some sourcery called automoc. Let's use it.
  • Loading branch information
m-kuhn committed Nov 3, 2019
1 parent 87a8a16 commit 277a848
Show file tree
Hide file tree
Showing 29 changed files with 75 additions and 1,292 deletions.
3 changes: 3 additions & 0 deletions CMakeLists.txt
Expand Up @@ -7,6 +7,7 @@ SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
# POLICIES
CMAKE_POLICY (SET CMP0048 NEW)
CMAKE_POLICY (SET CMP0053 NEW)
CMAKE_POLICY (SET CMP0071 NEW)

# don't relink it only the shared object changes
SET(CMAKE_LINK_DEPENDS_NO_SHARED ON)
Expand Down Expand Up @@ -455,6 +456,8 @@ IF(WITH_CORE)
ADD_DEFINITIONS(-DQT_NO_CAST_TO_ASCII)
ENDIF(WITH_CORE)

SET(CMAKE_AUTOMOC ON)

# build our version of astyle
SET (WITH_ASTYLE FALSE CACHE BOOL "If you plan to contribute you should reindent with scripts/prepare-commit.sh (using 'our' astyle)")

Expand Down
35 changes: 1 addition & 34 deletions src/3d/CMakeLists.txt
Expand Up @@ -61,39 +61,6 @@ SET(QGIS_3D_SRCS
#terrain/quantizedmeshterraingenerator.cpp
)

SET(QGIS_3D_MOC_HDRS

qgs3dmapscene.h
qgs3dmapsettings.h
qgsabstract3dengine.h
qgscameracontroller.h
qgslayoutitem3dmap.h
qgsoffscreen3dengine.h
qgstessellatedpolygongeometry.h
qgswindow3dengine.h

chunks/qgschunkboundsentity_p.h
chunks/qgschunkedentity_p.h
chunks/qgschunkloader_p.h
chunks/qgschunkqueuejob_p.h

processing/qgs3dalgorithms.h

symbols/qgsbillboardgeometry.h
symbols/qgspoint3dbillboardmaterial.h
symbols/qgslinematerial_p.h

terrain/qgsdemterraintileloader_p.h
terrain/qgsflatterraingenerator.h
terrain/qgsterrainentity_p.h
terrain/qgsterraintexturegenerator_p.h
terrain/qgsterraintextureimage_p.h
terrain/qgsterraintileentity_p.h
terrain/qgsterraintileloader_p.h
)

QT5_WRAP_CPP(QGIS_3D_MOC_SRCS ${QGIS_3D_MOC_HDRS})

QT5_ADD_RESOURCES(QGIS_3D_RCC_SRCS shaders.qrc)

# install headers
Expand Down Expand Up @@ -183,7 +150,7 @@ INCLUDE_DIRECTORIES(SYSTEM
#############################################################
# qgis_3d library

ADD_LIBRARY(qgis_3d SHARED ${QGIS_3D_SRCS} ${QGIS_3D_MOC_SRCS} ${QGIS_3D_HDRS} ${QGIS_3D_RCC_SRCS})
ADD_LIBRARY(qgis_3d SHARED ${QGIS_3D_SRCS} ${QGIS_3D_HDRS} ${QGIS_3D_RCC_SRCS})

TARGET_LINK_LIBRARIES(qgis_3d Qt5::3DCore Qt5::3DRender Qt5::3DInput Qt5::3DLogic Qt5::3DExtras)

Expand Down
22 changes: 2 additions & 20 deletions src/analysis/CMakeLists.txt
Expand Up @@ -202,23 +202,6 @@ SET(QGIS_ANALYSIS_SRCS
vector/geometry_checker/qgsvectorlayerfeaturepool.cpp
)

SET(QGIS_ANALYSIS_MOC_HDRS
processing/qgsnativealgorithms.h

vector/qgsgeometrysnapper.h

network/qgsgraphdirector.h
network/qgsvectorlayerdirector.h

processing/qgsalgorithmfiledownloader.h

vector/geometry_checker/qgsgeometrychecker.h
vector/geometry_checker/qgsgeometrycheck.h
vector/geometry_checker/qgsvectorlayerfeaturepool.h
vector/geometry_checker/qgsgeometrygapcheck.h
vector/geometry_checker/qgsgeometrymissingvertexcheck.h
)

FIND_PACKAGE(EXIV2 REQUIRED)

INCLUDE_DIRECTORIES(SYSTEM ${SPATIALITE_INCLUDE_DIR})
Expand Down Expand Up @@ -259,8 +242,6 @@ IF (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
)
ENDIF (CMAKE_CXX_COMPILER_ID MATCHES "Clang")

QT5_WRAP_CPP(QGIS_ANALYSIS_MOC_SRCS ${QGIS_ANALYSIS_MOC_HDRS})

# install headers

SET(QGIS_ANALYSIS_HDRS
Expand Down Expand Up @@ -316,6 +297,7 @@ SET(QGIS_ANALYSIS_HDRS
network/qgsgraph.h
network/qgsgraphbuilderinterface.h
network/qgsgraphbuilder.h
network/qgsgraphdirector.h
network/qgsnetworkstrategy.h
network/qgsnetworkspeedstrategy.h
network/qgsnetworkdistancestrategy.h
Expand Down Expand Up @@ -391,7 +373,7 @@ ENDIF(HAVE_OPENCL)
#############################################################
# qgis_analysis library

ADD_LIBRARY(qgis_analysis SHARED ${QGIS_ANALYSIS_SRCS} ${QGIS_ANALYSIS_MOC_SRCS} ${QGIS_ANALYSIS_HDRS})
ADD_LIBRARY(qgis_analysis SHARED ${QGIS_ANALYSIS_SRCS} ${QGIS_ANALYSIS_HDRS})

GENERATE_EXPORT_HEADER(
qgis_analysis
Expand Down

0 comments on commit 277a848

Please sign in to comment.