
cmake_minimum_required ( VERSION 3.5 )

set ( PROJECT_NAME app3d )

project ( ${PROJECT_NAME} LANGUAGES C )

set ( UTIL ../utilities )
include ( ${UTIL}/Utils.cmake )

set ( GLHEADERS ${UTIL}/openglheader.h ${UTIL}/util-debug.h
      ../GL/glad.h ../GL/khrplatform.h )
set ( APP3D_SOURCES ${UTIL}/glad.c ${UTIL}/utilities.c ${UTIL}/timer.c
      ${UTIL}/meshes1.c ${UTIL}/meshes2.c ${UTIL}/meshes4.c
      ${UTIL}/bezpatches.c ${UTIL}/xwidgets.c ${UTIL}/linkage.c
      ${UTIL}/ispline.c ${UTIL}/quaternions.c
      xknotswidget.c trans.c lights.c palm.c app3dklinkage.c app3danimate.c
      app3drender.c app3dproc.c )
set ( APP3D_HEADERS ${GLHEADERS} ${UTIL}/utilities.h
      ${UTIL}/bezpatches.h ${UTIL}/meshes.h ${UTIL}/xwidgets.h
      ${UTIL}/linkage.h ${UTIL}/ispline.h ${UTIL}/quaternions.h
      knotswidget.h xknotswidget.h trans.h lights.h palm.h
      app3dproc.h app3dstruct.h app3d.h )

set ( APP3D_X_SOURCES ${UTIL}/initglxctx.c app3d.X.c )
set ( APP3D_X_HRADERS ${UTIL}/initglxctx.h )
set ( APP3D_MSWIN_SOURCES ${UTIL}/initwglctx.c app3d.MSWIN.c )
set ( APP3D_MSWIN_HEADERS ${UTIL}/initwglctx.h )

if ( UNIX )
  add_executable ( ${PROJECT_NAME} ${APP3D_SOURCES} ${APP3D_X_SOURCES}
                   ${APP3D_HEADERS} ${APP3D_X_HEADERS} )
endif ()

if ( WIN32 )
  add_executable ( ${PROJECT_NAME} ${APP3D_SOURCES} ${APP3D_HEADERS}
                   ${APP3D_MSWIN_SOURCES} ${APP3D_MSWIN_HEADERS} )
endif ()

AddGLXWLibs ( ${PROJECT_NAME} )
SetOutputDir ( ${PROJECT_NAME} )

