# Copyright: 2016-2023 Paul Obermeier (obermeier@tcl3d.org) # Distributed under BSD license. # # BuildType Windows: CMake / vs # CMake / gcc # BuildType Linux : CMake / gcc # BuildType Darwin : CMake / gcc proc Init_freeglut { libName libVersion } { SetScriptAuthor $libName "Paul Obermeier" "obermeier@tcl3d.org" SetLibHomepage $libName "https://sourceforge.net/projects/freeglut/" SetLibDependencies $libName "CMake" SetPlatforms $libName "All" SetWinCompilers $libName "gcc" "vs" } proc Build_freeglut { libName libVersion buildDir instDir devDir distDir } { if { [UseStage "Extract" $libName] } { ExtractLibrary $libName $buildDir } if { [UseStage "Configure" $libName] } { CMakeConfig $libName "$buildDir" "$buildDir" "$instDir" \ "-DINSTALL_PDB=OFF" \ [GetCMakeMSysOption $libName] } if { [UseStage "Compile" $libName] } { CMakeBuild $libName "$buildDir" "install" [GetBuildType] [GetCMakeMSysOption $libName] if { [NeedDll2Lib $libName] } { Dll2Lib $libName "$instDir/bin" "libfreeglut.dll" "libfreeglut.def" "$instDir/lib/libfreeglut.lib" } } if { [UseStage "Distribute" $libName] } { StripLibraries "$instDir" if { [IsWindows] } { MultiFileCopy "$instDir/bin" "$distDir/lib" "*.dll" MultiFileCopy "$instDir/bin" "$devDir/lib" "*.dll" if { [UseWinCompiler $libName "vs"] || [NeedDll2Lib $libName] } { MultiFileCopy "$instDir/lib" "$devDir/lib" "*.lib" } } else { LibFileCopy "$instDir" "$distDir" "*.dylib *.so*" LibFileCopy "$instDir" "$devDir" "*.dylib *.so* *.a" } MultiFileCopy "$instDir/include" "$devDir/include" "*" true SingleFileCopy "$instDir/include/GL/freeglut.h" "$devDir/include/GL" "glut.h" if { [IsDebugBuild] && [UseWinCompiler $libName "vs"] } { MultiFileCopy "$buildDir/bin/Debug" "$devDir/lib" "freeglut*.pdb" } } return true }