diff --git a/examples/ThirdPartyLibs/Gwen/CMakeLists.txt b/examples/ThirdPartyLibs/Gwen/CMakeLists.txt index 7ca7656a20..0ef3a55480 100644 --- a/examples/ThirdPartyLibs/Gwen/CMakeLists.txt +++ b/examples/ThirdPartyLibs/Gwen/CMakeLists.txt @@ -20,7 +20,16 @@ ADD_DEFINITIONS( -DGLEW_STATIC -DGWEN_COMPILE_STATIC -D_HAS_EXCEPTIONS=0 ) FILE(GLOB gwen_SRCS "*.cpp" "Controls/*.cpp" "Controls/Dialog/*.cpp" "Controls/Dialogs/*.cpp" "Controls/Layout/*.cpp" "Controls/Property/*.cpp" "Input/*.cpp" "Platforms/*.cpp" "Renderers/*.cpp" "Skins/*.cpp") FILE(GLOB gwen_HDRS "*.h" "Controls/*.h" "Controls/Dialog/*.h" "Controls/Dialogs/*.h" "Controls/Layout/*.h" "Controls/Property/*.h" "Input/*.h" "Platforms/*.h" "Renderers/*.h" "Skins/*.h") +# Add PCH source file +SET(gwen_SRCS ${gwen_SRCS} GwenPCH.cpp) + ADD_LIBRARY(gwen ${gwen_SRCS} ${gwen_HDRS}) + +# Enable precompiled headers (CMake 3.16+) +IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") + TARGET_PRECOMPILE_HEADERS(gwen PRIVATE GwenPCH.h) +ENDIF() + IF (BUILD_SHARED_LIBS) IF(WIN32 OR APPLE) target_link_libraries(gwen ${OPENGL_gl_LIBRARY}) diff --git a/examples/ThirdPartyLibs/Gwen/GwenPCH.cpp b/examples/ThirdPartyLibs/Gwen/GwenPCH.cpp new file mode 100644 index 0000000000..eb5220e38d --- /dev/null +++ b/examples/ThirdPartyLibs/Gwen/GwenPCH.cpp @@ -0,0 +1,5 @@ +/* +GWEN Library - Precompiled Header Implementation +*/ + +#include "GwenPCH.h" diff --git a/examples/ThirdPartyLibs/Gwen/GwenPCH.h b/examples/ThirdPartyLibs/Gwen/GwenPCH.h new file mode 100644 index 0000000000..2a9db8c0b3 --- /dev/null +++ b/examples/ThirdPartyLibs/Gwen/GwenPCH.h @@ -0,0 +1,29 @@ +/* +GWEN Library - Precompiled Header +*/ + +#ifndef GWEN_PCH_H +#define GWEN_PCH_H + +// Standard Library Headers - Most expensive +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Windows headers (if on Windows) - without LEAN_AND_MEAN for Gwen +#ifdef _WIN32 +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include +#include +#endif + +#endif // GWEN_PCH_H diff --git a/src/Bullet3Collision/Bullet3CollisionPCH.cpp b/src/Bullet3Collision/Bullet3CollisionPCH.cpp new file mode 100644 index 0000000000..a516e34837 --- /dev/null +++ b/src/Bullet3Collision/Bullet3CollisionPCH.cpp @@ -0,0 +1,5 @@ +/* +Bullet3 Collision - Precompiled Header Implementation +*/ + +#include "Bullet3CollisionPCH.h" diff --git a/src/Bullet3Collision/Bullet3CollisionPCH.h b/src/Bullet3Collision/Bullet3CollisionPCH.h new file mode 100644 index 0000000000..53ac6a60dc --- /dev/null +++ b/src/Bullet3Collision/Bullet3CollisionPCH.h @@ -0,0 +1,13 @@ +/* +Bullet3 Collision - Precompiled Header +*/ + +#ifndef BULLET3_COLLISION_PCH_H +#define BULLET3_COLLISION_PCH_H + +// Standard Library Headers +#include +#include +#include + +#endif // BULLET3_COLLISION_PCH_H diff --git a/src/Bullet3Collision/CMakeLists.txt b/src/Bullet3Collision/CMakeLists.txt index 130095cc04..37d4fa7747 100644 --- a/src/Bullet3Collision/CMakeLists.txt +++ b/src/Bullet3Collision/CMakeLists.txt @@ -4,6 +4,7 @@ INCLUDE_DIRECTORIES( ) SET(Bullet3Collision_SRCS + Bullet3CollisionPCH.cpp BroadPhaseCollision/b3DynamicBvh.cpp BroadPhaseCollision/b3DynamicBvhBroadphase.cpp BroadPhaseCollision/b3OverlappingPairCache.cpp @@ -58,6 +59,12 @@ SET(Bullet3Collision_HDRS ) ADD_LIBRARY(Bullet3Collision ${Bullet3Collision_SRCS} ${Bullet3Collision_HDRS}) + +# Enable precompiled headers (CMake 3.16+) +IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") + TARGET_PRECOMPILE_HEADERS(Bullet3Collision PRIVATE Bullet3CollisionPCH.h) +ENDIF() + if (BUILD_SHARED_LIBS) target_link_libraries(Bullet3Collision Bullet3Geometry) endif () diff --git a/src/Bullet3Dynamics/Bullet3DynamicsPCH.cpp b/src/Bullet3Dynamics/Bullet3DynamicsPCH.cpp new file mode 100644 index 0000000000..12b9228c05 --- /dev/null +++ b/src/Bullet3Dynamics/Bullet3DynamicsPCH.cpp @@ -0,0 +1,5 @@ +/* +Bullet3 Dynamics - Precompiled Header Implementation +*/ + +#include "Bullet3DynamicsPCH.h" diff --git a/src/Bullet3Dynamics/Bullet3DynamicsPCH.h b/src/Bullet3Dynamics/Bullet3DynamicsPCH.h new file mode 100644 index 0000000000..8193893792 --- /dev/null +++ b/src/Bullet3Dynamics/Bullet3DynamicsPCH.h @@ -0,0 +1,13 @@ +/* +Bullet3 Dynamics - Precompiled Header +*/ + +#ifndef BULLET3_DYNAMICS_PCH_H +#define BULLET3_DYNAMICS_PCH_H + +// Standard Library Headers +#include +#include +#include + +#endif // BULLET3_DYNAMICS_PCH_H diff --git a/src/Bullet3Dynamics/CMakeLists.txt b/src/Bullet3Dynamics/CMakeLists.txt index 94c120d9b5..7b774cac5f 100644 --- a/src/Bullet3Dynamics/CMakeLists.txt +++ b/src/Bullet3Dynamics/CMakeLists.txt @@ -4,6 +4,7 @@ INCLUDE_DIRECTORIES( ) SET(Bullet3Dynamics_SRCS + Bullet3DynamicsPCH.cpp b3CpuRigidBodyPipeline.cpp ConstraintSolver/b3FixedConstraint.cpp ConstraintSolver/b3Generic6DofConstraint.cpp @@ -30,6 +31,12 @@ SET(Bullet3Dynamics_HDRS ) ADD_LIBRARY(Bullet3Dynamics ${Bullet3Dynamics_SRCS} ${Bullet3Dynamics_HDRS}) + +# Enable precompiled headers (CMake 3.16+) +IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") + TARGET_PRECOMPILE_HEADERS(Bullet3Dynamics PRIVATE Bullet3DynamicsPCH.h) +ENDIF() + if (BUILD_SHARED_LIBS) target_link_libraries(Bullet3Dynamics Bullet3Collision) endif () diff --git a/src/BulletCollision/BulletCollisionPCH.cpp b/src/BulletCollision/BulletCollisionPCH.cpp new file mode 100644 index 0000000000..5e85b9a56f --- /dev/null +++ b/src/BulletCollision/BulletCollisionPCH.cpp @@ -0,0 +1,6 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Precompiled Header for BulletCollision - Implementation +*/ + +#include "BulletCollisionPCH.h" diff --git a/src/BulletCollision/BulletCollisionPCH.h b/src/BulletCollision/BulletCollisionPCH.h new file mode 100644 index 0000000000..fa80db02b8 --- /dev/null +++ b/src/BulletCollision/BulletCollisionPCH.h @@ -0,0 +1,37 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Precompiled Header for BulletCollision +*/ + +#ifndef BULLET_COLLISION_PCH_H +#define BULLET_COLLISION_PCH_H + +// Standard Library Headers - Most expensive +#include +#include +#include +#include +#include +#include + +// Windows headers (if on Windows) +#ifdef _WIN32 +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include +#endif + +// Common Bullet LinearMath headers +#include "LinearMath/btQuaternion.h" +#include "LinearMath/btTransform.h" +#include "LinearMath/btDefaultMotionState.h" +#include "LinearMath/btQuickprof.h" +#include "LinearMath/btIDebugDraw.h" +#include "LinearMath/btSerializer.h" +#include "LinearMath/btHashMap.h" + +#endif // BULLET_COLLISION_PCH_H diff --git a/src/BulletCollision/CMakeLists.txt b/src/BulletCollision/CMakeLists.txt index f5d725562c..b26102ab67 100644 --- a/src/BulletCollision/CMakeLists.txt +++ b/src/BulletCollision/CMakeLists.txt @@ -1,6 +1,7 @@ INCLUDE_DIRECTORIES( ${BULLET_PHYSICS_SOURCE_DIR}/src ) SET(BulletCollision_SRCS + BulletCollisionPCH.cpp BroadphaseCollision/btAxisSweep3.cpp BroadphaseCollision/btBroadphaseProxy.cpp BroadphaseCollision/btCollisionAlgorithm.cpp @@ -256,6 +257,12 @@ SET(BulletCollision_HDRS ADD_LIBRARY(BulletCollision ${BulletCollision_SRCS} ${BulletCollision_HDRS}) SET_TARGET_PROPERTIES(BulletCollision PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletCollision PROPERTIES SOVERSION ${BULLET_VERSION}) + +# Enable precompiled headers (CMake 3.16+) +IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") + TARGET_PRECOMPILE_HEADERS(BulletCollision PRIVATE BulletCollisionPCH.h) +ENDIF() + IF (BUILD_SHARED_LIBS) TARGET_LINK_LIBRARIES(BulletCollision LinearMath) ENDIF (BUILD_SHARED_LIBS) diff --git a/src/BulletDynamics/BulletDynamicsPCH.cpp b/src/BulletDynamics/BulletDynamicsPCH.cpp new file mode 100644 index 0000000000..90e1ddb411 --- /dev/null +++ b/src/BulletDynamics/BulletDynamicsPCH.cpp @@ -0,0 +1,6 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Precompiled Header for BulletDynamics - Implementation +*/ + +#include "BulletDynamicsPCH.h" diff --git a/src/BulletDynamics/BulletDynamicsPCH.h b/src/BulletDynamics/BulletDynamicsPCH.h new file mode 100644 index 0000000000..b830b45fa4 --- /dev/null +++ b/src/BulletDynamics/BulletDynamicsPCH.h @@ -0,0 +1,32 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Precompiled Header for BulletDynamics +*/ + +#ifndef BULLET_DYNAMICS_PCH_H +#define BULLET_DYNAMICS_PCH_H + +// Standard Library Headers - Most expensive +#include +#include +#include +#include +#include +#include + +// Windows headers (if on Windows) +#ifdef _WIN32 +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include +#endif + +// Common Bullet headers +#include "btBulletCollisionCommon.h" +#include "LinearMath/btHashMap.h" + +#endif // BULLET_DYNAMICS_PCH_H diff --git a/src/BulletDynamics/CMakeLists.txt b/src/BulletDynamics/CMakeLists.txt index cfd49e906a..405dc34c11 100644 --- a/src/BulletDynamics/CMakeLists.txt +++ b/src/BulletDynamics/CMakeLists.txt @@ -3,6 +3,7 @@ INCLUDE_DIRECTORIES( ${BULLET_PHYSICS_SOURCE_DIR}/src ) SET(BulletDynamics_SRCS + BulletDynamicsPCH.cpp Character/btKinematicCharacterController.cpp ConstraintSolver/btConeTwistConstraint.cpp ConstraintSolver/btContactConstraint.cpp @@ -143,6 +144,12 @@ SET(BulletDynamics_HDRS ADD_LIBRARY(BulletDynamics ${BulletDynamics_SRCS} ${BulletDynamics_HDRS}) SET_TARGET_PROPERTIES(BulletDynamics PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletDynamics PROPERTIES SOVERSION ${BULLET_VERSION}) + +# Enable precompiled headers (CMake 3.16+) +IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") + TARGET_PRECOMPILE_HEADERS(BulletDynamics PRIVATE BulletDynamicsPCH.h) +ENDIF() + IF (BUILD_SHARED_LIBS) TARGET_LINK_LIBRARIES(BulletDynamics BulletCollision LinearMath) ENDIF (BUILD_SHARED_LIBS) diff --git a/src/BulletSoftBody/BulletSoftBodyPCH.cpp b/src/BulletSoftBody/BulletSoftBodyPCH.cpp new file mode 100644 index 0000000000..3372bbb190 --- /dev/null +++ b/src/BulletSoftBody/BulletSoftBodyPCH.cpp @@ -0,0 +1,6 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Precompiled Header for BulletSoftBody - Implementation +*/ + +#include "BulletSoftBodyPCH.h" diff --git a/src/BulletSoftBody/BulletSoftBodyPCH.h b/src/BulletSoftBody/BulletSoftBodyPCH.h new file mode 100644 index 0000000000..00da1404f8 --- /dev/null +++ b/src/BulletSoftBody/BulletSoftBodyPCH.h @@ -0,0 +1,32 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Precompiled Header for BulletSoftBody +*/ + +#ifndef BULLET_SOFT_BODY_PCH_H +#define BULLET_SOFT_BODY_PCH_H + +// Standard Library Headers - Most expensive +#include +#include +#include +#include +#include +#include + +// Windows headers (if on Windows) +#ifdef _WIN32 +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include +#endif + +// Common Bullet headers +#include "btBulletDynamicsCommon.h" +#include "LinearMath/btHashMap.h" + +#endif // BULLET_SOFT_BODY_PCH_H diff --git a/src/BulletSoftBody/CMakeLists.txt b/src/BulletSoftBody/CMakeLists.txt index c12eef5fe2..a830919f6e 100644 --- a/src/BulletSoftBody/CMakeLists.txt +++ b/src/BulletSoftBody/CMakeLists.txt @@ -7,6 +7,7 @@ ${BULLET_PHYSICS_SOURCE_DIR}/src #SUBDIRS( Solvers ) SET(BulletSoftBody_SRCS + BulletSoftBodyPCH.cpp btSoftBody.cpp btSoftBodyConcaveCollisionAlgorithm.cpp btSoftBodyHelpers.cpp @@ -80,6 +81,12 @@ SET(BulletSoftBody_HDRS ADD_LIBRARY(BulletSoftBody ${BulletSoftBody_SRCS} ${BulletSoftBody_HDRS}) SET_TARGET_PROPERTIES(BulletSoftBody PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletSoftBody PROPERTIES SOVERSION ${BULLET_VERSION}) + +# Enable precompiled headers (CMake 3.16+) +IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") + TARGET_PRECOMPILE_HEADERS(BulletSoftBody PRIVATE BulletSoftBodyPCH.h) +ENDIF() + IF (BUILD_SHARED_LIBS) TARGET_LINK_LIBRARIES(BulletSoftBody BulletDynamics) ENDIF (BUILD_SHARED_LIBS) diff --git a/src/LinearMath/CMakeLists.txt b/src/LinearMath/CMakeLists.txt index a0532c76e5..90513a0a16 100644 --- a/src/LinearMath/CMakeLists.txt +++ b/src/LinearMath/CMakeLists.txt @@ -4,6 +4,7 @@ INCLUDE_DIRECTORIES( ) SET(LinearMath_SRCS + LinearMathPCH.cpp btAlignedAllocator.cpp btConvexHull.cpp btConvexHullComputer.cpp @@ -58,6 +59,11 @@ ADD_LIBRARY(LinearMath ${LinearMath_SRCS} ${LinearMath_HDRS}) SET_TARGET_PROPERTIES(LinearMath PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(LinearMath PROPERTIES SOVERSION ${BULLET_VERSION}) +# Enable precompiled headers (CMake 3.16+) +IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") + TARGET_PRECOMPILE_HEADERS(LinearMath PRIVATE LinearMathPCH.h) +ENDIF() + IF (INSTALL_LIBS) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) #FILES_MATCHING requires CMake 2.6 diff --git a/src/LinearMath/LinearMathPCH.cpp b/src/LinearMath/LinearMathPCH.cpp new file mode 100644 index 0000000000..d125d996aa --- /dev/null +++ b/src/LinearMath/LinearMathPCH.cpp @@ -0,0 +1,6 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Precompiled Header for LinearMath - Implementation +*/ + +#include "LinearMathPCH.h" diff --git a/src/LinearMath/LinearMathPCH.h b/src/LinearMath/LinearMathPCH.h new file mode 100644 index 0000000000..61c7bf3451 --- /dev/null +++ b/src/LinearMath/LinearMathPCH.h @@ -0,0 +1,27 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Precompiled Header for LinearMath +*/ + +#ifndef LINEAR_MATH_PCH_H +#define LINEAR_MATH_PCH_H + +// Standard Library Headers - Most expensive +#include +#include +#include +#include +#include + +// Windows headers (if on Windows) +#ifdef _WIN32 +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include +#endif + +#endif // LINEAR_MATH_PCH_H