reactos/dll/opengl/glu32/CMakeLists.txt
Jérôme Gardou 23373acbb9 [CMAKE] Use modules instead of shared libraries
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.

On my system, this reduces the configure-time by a factor of two.
2019-04-06 17:43:38 +02:00

134 lines
4.4 KiB
CMake

set_cpp(WITH_RUNTIME)
include_directories(BEFORE
include
src/include
src/libnurbs/internals
src/libnurbs/interface
src/libnurbs/nurbtess)
add_definitions(
-DBUILD_GLU32
-DNDEBUG
-DLIBRARYBUILD
-DRESOLVE_3D_TEXTURE_SUPPORT)
# we must use our own spec file
spec2def(glu32.dll glu32.spec ADD_IMPORTLIB)
list(APPEND SOURCE
src/libutil/error.c
src/libutil/glue.c
src/libutil/mipmap.c
src/libutil/project.c
src/libutil/quad.c
src/libutil/registry.c
src/libtess/dict.c
src/libtess/geom.c
src/libtess/memalloc.c
src/libtess/mesh.c
src/libtess/normal.c
src/libtess/priorityq.c
src/libtess/render.c
src/libtess/sweep.c
src/libtess/tess.c
src/libtess/tessmono.c)
list(APPEND LIBNURBS_SOURCE
src/libnurbs/interface/bezierEval.cc
src/libnurbs/interface/bezierPatch.cc
src/libnurbs/interface/bezierPatchMesh.cc
src/libnurbs/interface/glcurveval.cc
src/libnurbs/interface/glinterface.cc
src/libnurbs/interface/glrenderer.cc
src/libnurbs/interface/glsurfeval.cc
src/libnurbs/interface/incurveeval.cc
src/libnurbs/interface/insurfeval.cc
src/libnurbs/internals/arc.cc
src/libnurbs/internals/arcsorter.cc
src/libnurbs/internals/arctess.cc
src/libnurbs/internals/backend.cc
src/libnurbs/internals/basiccrveval.cc
src/libnurbs/internals/basicsurfeval.cc
src/libnurbs/internals/bin.cc
src/libnurbs/internals/bufpool.cc
src/libnurbs/internals/cachingeval.cc
src/libnurbs/internals/ccw.cc
src/libnurbs/internals/coveandtiler.cc
src/libnurbs/internals/curve.cc
src/libnurbs/internals/curvelist.cc
src/libnurbs/internals/curvesub.cc
src/libnurbs/internals/dataTransform.cc
src/libnurbs/internals/displaylist.cc
src/libnurbs/internals/flist.cc
src/libnurbs/internals/flistsorter.cc
src/libnurbs/internals/hull.cc
src/libnurbs/internals/intersect.cc
src/libnurbs/internals/knotvector.cc
src/libnurbs/internals/mapdesc.cc
src/libnurbs/internals/mapdescv.cc
src/libnurbs/internals/maplist.cc
src/libnurbs/internals/mesher.cc
src/libnurbs/internals/monoTriangulationBackend.cc
src/libnurbs/internals/monotonizer.cc
src/libnurbs/internals/mycode.cc
src/libnurbs/internals/nurbsinterfac.cc
src/libnurbs/internals/nurbstess.cc
src/libnurbs/internals/patch.cc
src/libnurbs/internals/patchlist.cc
src/libnurbs/internals/quilt.cc
src/libnurbs/internals/reader.cc
src/libnurbs/internals/renderhints.cc
src/libnurbs/internals/slicer.cc
src/libnurbs/internals/sorter.cc
src/libnurbs/internals/splitarcs.cc
src/libnurbs/internals/subdivider.cc
src/libnurbs/internals/tobezier.cc
src/libnurbs/internals/trimline.cc
src/libnurbs/internals/trimregion.cc
src/libnurbs/internals/trimvertpool.cc
src/libnurbs/internals/uarray.cc
src/libnurbs/internals/varray.cc
src/libnurbs/nurbtess/directedLine.cc
src/libnurbs/nurbtess/gridWrap.cc
src/libnurbs/nurbtess/monoChain.cc
src/libnurbs/nurbtess/monoPolyPart.cc
src/libnurbs/nurbtess/monoTriangulation.cc
src/libnurbs/nurbtess/partitionX.cc
src/libnurbs/nurbtess/partitionY.cc
src/libnurbs/nurbtess/polyUtil.cc
src/libnurbs/nurbtess/primitiveStream.cc
src/libnurbs/nurbtess/quicksort.cc
src/libnurbs/nurbtess/rectBlock.cc
src/libnurbs/nurbtess/sampleComp.cc
src/libnurbs/nurbtess/sampleCompBot.cc
src/libnurbs/nurbtess/sampleCompRight.cc
src/libnurbs/nurbtess/sampleCompTop.cc
src/libnurbs/nurbtess/sampleMonoPoly.cc
src/libnurbs/nurbtess/sampledLine.cc
src/libnurbs/nurbtess/searchTree.cc
precomp.h)
add_library(glu32 MODULE
${LIBNURBS_SOURCE}
src/libnurbs/nurbtess/polyDBG.cc
${SOURCE}
glu32.rc
${CMAKE_CURRENT_BINARY_DIR}/glu32.def)
set_module_type(glu32 win32dll)
if(NOT MSVC)
add_target_compile_flags(glu32 "-Wno-write-strings -Wno-unused-but-set-variable")
# Prevent a warning when comparing 'this' against 0
set_source_files_properties(src/libnurbs/internals/arc.cc PROPERTIES COMPILE_FLAGS "-Wno-nonnull-compare")
elseif(USE_CLANG_CL)
add_target_compile_flags(glu32 "-Wno-self-assign -Wno-unused-function -Wno-microsoft-include")
add_target_compile_flags(glu32 "-Wno-deprecated-register -Wno-tautological-undefined-compare")
endif()
add_importlibs(glu32 opengl32 gdi32 msvcrt kernel32 ntdll)
add_pch(glu32 precomp.h LIBNURBS_SOURCE)
add_cd_file(TARGET glu32 DESTINATION reactos/system32 FOR all)