brlcad_find_package(PNG REQUIRED)

if(MSVC)
  add_definitions(-DIF_WGL)
endif(MSVC)
brlcad_addexec(bw-fb bw-fb.c libdm FOLDER Fb)
add_target_deps(bw-fb dm_plugins)
brlcad_addexec(fb-bw fb-bw.c libdm FOLDER Fb)
add_target_deps(fb-bw dm_plugins)
brlcad_addexec(fb-fb fb-fb.c libdm FOLDER Fb)
add_target_deps(fb-fb dm_plugins)
brlcad_addexec(fb-pix "fb-pix.c;cmap-crunch.c" libdm FOLDER Fb)
add_target_deps(fb-pix dm_plugins)
brlcad_addexec(fb-png "fb-png.c;cmap-crunch.c" "libdm;PNG::PNG" FOLDER Fb)
target_include_directories(fb-png BEFORE PRIVATE ${PNG_INCLUDE_DIRS})
add_target_deps(fb-png dm_plugins)
brlcad_addexec(fbcbars fbcbars.c libdm FOLDER Fb)
add_target_deps(fbcbars dm_plugins)
brlcad_addexec(fbclear fbclear.c libdm FOLDER Fb)
add_target_deps(fbclear dm_plugins)
brlcad_addexec(fbcmap fbcmap.c libdm FOLDER Fb)
add_target_deps(fbcmap dm_plugins)
brlcad_addexec(fbcolor fbcolor.c "libdm" FOLDER Fb)
target_include_directories(fbcolor BEFORE PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../libtermio)
add_target_deps(fbcolor dm_plugins)
brlcad_addexec(fbfade "fbfade.c;ioutil.c" libdm FOLDER Fb)
add_target_deps(fbfade dm_plugins)
brlcad_addexec(fbframe fbframe.c libdm FOLDER Fb)
add_target_deps(fbframe dm_plugins)
brlcad_addexec(fbfree fbfree.c libdm FOLDER Fb)
add_target_deps(fbfree dm_plugins)
brlcad_addexec(fbgamma fbgamma.c "libdm;${M_LIBRARY}" FOLDER Fb)
add_target_deps(fbgamma dm_plugins)
brlcad_addexec(fbgrid fbgrid.c libdm FOLDER Fb)
add_target_deps(fbgrid dm_plugins)
brlcad_addexec(fbhelp fbhelp.c libdm FOLDER Fb)
add_target_deps(fbhelp dm_plugins)
brlcad_add_test(
  NAME fbhelp_output_stream
  COMMAND "${CMAKE_COMMAND}" "-DFBHELP=$<TARGET_FILE:fbhelp>" -P "${CMAKE_CURRENT_SOURCE_DIR}/test_fbhelp_output.cmake"
)
brlcad_addexec(fblabel fblabel.c libdm FOLDER Fb)
add_target_deps(fblabel dm_plugins)
brlcad_addexec(fbline fbline.c libdm FOLDER Fb)
add_target_deps(fbline dm_plugins)
brlcad_addexec(fbpoint fbpoint.c "libdm;libbu;libpkg" FOLDER Fb)
target_include_directories(fbpoint BEFORE PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../libtermio)
add_target_deps(fbpoint dm_plugins)
brlcad_addexec(fbstretch "fbstretch.c;ioutil.c" libdm FOLDER Fb)
add_target_deps(fbstretch dm_plugins)
brlcad_addexec(fbzoom fbzoom.c "libdm" FOLDER Fb)
target_include_directories(fbzoom BEFORE PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../libtermio)
add_target_deps(fbzoom dm_plugins)
brlcad_addexec(gif-fb "gif-fb.c;ioutil.c" libdm FOLDER Fb)
add_target_deps(gif-fb dm_plugins)
brlcad_addexec(gif2fb gif2fb.c libdm FOLDER Fb)
add_target_deps(gif2fb dm_plugins)
brlcad_addexec(pix-fb pix-fb.c libdm FOLDER Fb)
add_target_deps(pix-fb dm_plugins)
brlcad_addexec(pixautosize pixautosize.c libdm FOLDER Fb)
add_target_deps(pixautosize dm_plugins)
brlcad_addexec(plot3-fb plot3-fb.c libdm FOLDER Fb)
add_target_deps(plot3-fb dm_plugins)
brlcad_addexec(png-fb png-fb.c "libdm;PNG::PNG" FOLDER Fb)
target_include_directories(png-fb BEFORE PRIVATE ${PNG_INCLUDE_DIRS})
add_target_deps(png-fb dm_plugins)

brlcad_addexec(spm-fb spm-fb.c "libdm;libbn" FOLDER Fb)
add_target_deps(spm-fb dm_plugins)

cmakefiles(
  CMakeLists.txt
  fbcolor.c
  fbpoint.c
  fbzoom.c
  test_fbhelp_output.cmake
)

# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
