build.ninja

rule kompile
  command = g++ -std=c++17 -c $in -o $out

rule linkkaa
  command = g++ $in -o $out -lglut -lGL -lGLU

build demo1.o: kompile demo1.cpp
build demo1.exe: linkkaa demo1.o
default demo1.exe

demo1.cpp


#include<GL/glut.h>

void displayMe(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POLYGON);
        glVertex3f(0.0, 0.0, 0.0);
        glVertex3f(0.5, 0.0, 0.0);
        glVertex3f(0.5, 0.5, 0.0);
        glVertex3f(0.0, 0.5, 0.0);
    glEnd();
    glFlush();
}

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE);
    glutInitWindowSize(300, 300);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Hei Maailma !");
    glutDisplayFunc(displayMe);
    glutMainLoop();
    return 0;
}