implot icon indicating copy to clipboard operation
implot copied to clipboard

Question: undeclared identifiers and executable configuration.

Open felixmaldonadoos opened this issue 1 year ago • 0 comments

Hello,

Im trying to implement implot to this repo (https://github.com/SaschaWillems/Vulkan/tree/master). All the examples build fine, including the imgui example which I am mainly interested in. I cloned implot to the external/ folder and updated the include paths in the main/root CmakeLists.txt (include_directories(external/implot)) and to the examples/CmakeLists.txt I added the following:

IF(${EXAMPLE_NAME} STREQUAL "implot")
  file(GLOB ADD_SOURCE 
  "../external/imgui/*.cpp" 
  "../external/implot/*.cpp" 
  "../external/implot/implot_internal.h")
  SET(SOURCE ${SOURCE} ${ADD_SOURCE})
ENDIF()
  • When I build implot/main.cpp I get a bunch of errors in console, primarily identifier "xx" if undefined.

  • Additionally, ````IM_MSVC_RUNTIME_CHECKS_OFFgives the following error:this declaration has no storage type or identifier```. Not sure what is triggering these errors since I have not modified any implot or imgui source files.

  • Lastly, when I build, I also get this error:

implot.exe (bin\implot.exe) does not have an executable configured
It cannot be launched.

My system:

  • Windows 11
  • Visual Studio 2022
  • Vulkan SDK version 1.3.268.0

I added whole examples/CmakeLists.txt below.

examples/CMakeLists.txt:
function(buildExample EXAMPLE_NAME)
	SET(EXAMPLE_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/${EXAMPLE_NAME})
	message(STATUS "Generating project file for example in ${EXAMPLE_FOLDER}")
	file(GLOB SOURCE *.cpp ${BASE_HEADERS} ${EXAMPLE_FOLDER}/*.cpp)
	SET(MAIN_CPP ${EXAMPLE_FOLDER}/${EXAMPLE_NAME}.cpp)
	if(EXISTS ${EXAMPLE_FOLDER}/main.cpp)
		SET(MAIN_CPP ${EXAMPLE_FOLDER}/main.cpp)
	ENDIF()
	if(EXISTS ${EXAMPLE_FOLDER}/${EXAMPLE_NAME}.h)
		SET(MAIN_HEADER ${EXAMPLE_FOLDER}/${EXAMPLE_NAME}.h)
	ENDIF()
	IF(${EXAMPLE_NAME} STREQUAL "imgui")
		file(GLOB ADD_SOURCE "../external/imgui/*.cpp")
		SET(SOURCE ${SOURCE} ${ADD_SOURCE})
	ENDIF()

	IF(${EXAMPLE_NAME} STREQUAL "implot")
		file(GLOB ADD_SOURCE 
		"../external/imgui/*.cpp" 
		"../external/implot/*.cpp" 
		"../external/implot/implot_internal.h")
		SET(SOURCE ${SOURCE} ${ADD_SOURCE})
	ENDIF()

	IF(USE_WAYLAND_WSI)
		SET(SOURCE ${SOURCE} ${CMAKE_BINARY_DIR}/xdg-shell-client-protocol.h ${CMAKE_BINARY_DIR}/xdg-shell-protocol.c)
	ENDIF()

	set(SHADER_DIR_GLSL "../shaders/glsl/${EXAMPLE_NAME}")
	file(GLOB SHADERS_GLSL "${SHADER_DIR_GLSL}/*.vert" "${SHADER_DIR_GLSL}/*.frag" "${SHADER_DIR_GLSL}/*.comp" "${SHADER_DIR_GLSL}/*.geom" "${SHADER_DIR_GLSL}/*.tesc" "${SHADER_DIR_GLSL}/*.tese" "${SHADER_DIR_GLSL}/*.mesh" "${SHADER_DIR_GLSL}/*.task" "${SHADER_DIR_GLSL}/*.rgen" "${SHADER_DIR_GLSL}/*.rchit" "${SHADER_DIR_GLSL}/*.rmiss" "${SHADER_DIR_GLSL}/*.rcall" "${SHADER_DIR_GLSL}/*.rahit" "${SHADER_DIR_GLSL}/*.rint" "${SHADER_DIR_GLSL}/*.glsl")
	set(SHADER_DIR_HLSL "../shaders/hlsl/${EXAMPLE_NAME}")
	file(GLOB SHADERS_HLSL "${SHADER_DIR_HLSL}/*.vert" "${SHADER_DIR_HLSL}/*.frag" "${SHADER_DIR_HLSL}/*.comp" "${SHADER_DIR_HLSL}/*.geom" "${SHADER_DIR_HLSL}/*.tesc" "${SHADER_DIR_HLSL}/*.tese" "${SHADER_DIR_HLSL}/*.mesh" "${SHADER_DIR_HLSL}/*.task" "${SHADER_DIR_HLSL}/*.rgen" "${SHADER_DIR_HLSL}/*.rchit" "${SHADER_DIR_HLSL}/*.rmiss" "${SHADER_DIR_HLSL}/*.rcall" "${SHADER_DIR_HLSL}/*.rahit" "${SHADER_DIR_HLSL}/*.rint")
	source_group("Shaders\\GLSL" FILES ${SHADERS_GLSL})
	source_group("Shaders\\HLSL" FILES ${SHADERS_HLSL})
	file(GLOB README_FILES "${EXAMPLE_FOLDER}/*.md")
	if(WIN32)
		add_executable(${EXAMPLE_NAME} WIN32 ${MAIN_CPP} ${SOURCE} ${MAIN_HEADER} ${SHADERS_GLSL} ${SHADERS_HLSL} ${README_FILES})
		target_link_libraries(${EXAMPLE_NAME} base ${Vulkan_LIBRARY} ${WINLIBS})
	else(WIN32)
		add_executable(${EXAMPLE_NAME} ${MAIN_CPP} ${SOURCE} ${MAIN_HEADER} ${SHADERS_GLSL} ${SHADERS_HLSL} ${README_FILES})
		target_link_libraries(${EXAMPLE_NAME} base )
	endif(WIN32)

	file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
	set_target_properties(${EXAMPLE_NAME} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
	if(${EXAMPLE_NAME} STREQUAL "texture3d")
		if(APPLE)
			if(NOT OpenMP_omp_LIBRARY AND EXISTS /opt/local/lib/libomp/libomp.dylib)
				set(OpenMP_omp_LIBRARY /opt/local/lib/libomp/libomp.dylib)
			endif()
			if(CMAKE_C_COMPILER_ID MATCHES "Clang\$")
				set(OpenMP_C_FLAGS "-Xclang -fopenmp")
				set(OpenMP_C_LIB_NAMES "omp")
				if(NOT OpenMP_C_INCLUDE_DIR AND EXISTS /opt/local/include/libomp)
					set(OpenMP_C_INCLUDE_DIR /opt/local/include/libomp)
				endif()
			endif()
			if(CMAKE_CXX_COMPILER_ID MATCHES "Clang\$")
				set(OpenMP_CXX_FLAGS "-Xclang -fopenmp")
				set(OpenMP_CXX_LIB_NAMES "omp")
				if(NOT OpenMP_CXX_INCLUDE_DIR AND EXISTS /opt/local/include/libomp)
					set(OpenMP_CXX_INCLUDE_DIR /opt/local/include/libomp)
				endif()
			endif()
		endif()
		find_package(OpenMP)
		if(OpenMP_CXX_FOUND)
			link_directories(${OpenMP_CXX_LIBRARY_DIRS})
		endif()
	endif()

	if(RESOURCE_INSTALL_DIR)
		install(TARGETS ${EXAMPLE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
	endif()
endfunction(buildExample)

function(buildExamples)
	foreach(EXAMPLE ${EXAMPLES})
		buildExample(${EXAMPLE})
	endforeach(EXAMPLE)
endfunction(buildExamples)

set(EXAMPLES
	imgui
	multiview
	implot
)

buildExamples()

Tree

.
├── BUILD.md
├── CMakeLists.txt
├── CREDITS.md
├── LICENSE.md
├── README.md
├── android
│   ├── build.gradle
│   ├── common
│   │   └── res
│   ├── examples
│   │   ├── _template
│   │   ├── base
│   │   ├── bloom
│   │   ├── computecloth
│   │   ├── computecullandlod
│   │   ├── computeheadless
│   │   ├── computenbody
│   │   ├── computeparticles
│   │   ├── computeraytracing
│   │   ├── computeshader
│   │   ├── conservativeraster
│   │   ├── debugmarker
│   │   ├── deferred
│   │   ├── deferredmultisampling
│   │   ├── deferredshadows
│   │   ├── descriptorindexing
│   │   ├── descriptorsets
│   │   ├── displacement
│   │   ├── distancefieldfonts
│   │   ├── dynamicuniformbuffer
│   │   ├── gears
│   │   ├── geometryshader
│   │   ├── gltfloading
│   │   ├── gltfscenerendering
│   │   ├── gltfskinning
│   │   ├── gradle
│   │   ├── hdr
│   │   ├── imgui
│   │   ├── indirectdraw
│   │   ├── inlineuniformblocks
│   │   ├── inputattachments
│   │   ├── instancing
│   │   ├── multisampling
│   │   ├── multithreading
│   │   ├── multiview
│   │   ├── negativeviewportheight
│   │   ├── occlusionquery
│   │   ├── offscreen
│   │   ├── oit
│   │   ├── parallaxmapping
│   │   ├── particlesystem
│   │   ├── pbrbasic
│   │   ├── pbribl
│   │   ├── pbrtexture
│   │   ├── pipelines
│   │   ├── pipelinestatistics
│   │   ├── pushconstants
│   │   ├── pushdescriptors
│   │   ├── radialblur
│   │   ├── rayquery
│   │   ├── raytracingbasic
│   │   ├── raytracingreflections
│   │   ├── raytracingshadows
│   │   ├── renderheadless
│   │   ├── screenshot
│   │   ├── shadowmapping
│   │   ├── shadowmappingcascade
│   │   ├── shadowmappingomni
│   │   ├── specializationconstants
│   │   ├── sphericalenvmapping
│   │   ├── ssao
│   │   ├── stencilbuffer
│   │   ├── subpasses
│   │   ├── terraintessellation
│   │   ├── tessellation
│   │   ├── textoverlay
│   │   ├── texture
│   │   ├── texture3d
│   │   ├── texturearray
│   │   ├── texturecubemap
│   │   ├── texturecubemaparray
│   │   ├── texturemipmapgen
│   │   ├── triangle
│   │   ├── variablerateshading
│   │   ├── vertexattributes
│   │   ├── viewportarray
│   │   └── vulkanscene
│   ├── gradle
│   │   └── wrapper
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── settings.gradle
├── assets
│   ├── README.md
│   ├── Roboto-Medium-license.txt
│   ├── Roboto-Medium.ttf
│   ├── font.fnt
│   ├── models
│   │   ├── CesiumMan
│   │   ├── FlightHelmet
│   │   ├── armor
│   │   ├── cerberus
│   │   ├── chinesedragon.gltf
│   │   ├── color_teapot_spheres.gltf
│   │   ├── cube.gltf
│   │   ├── deer.gltf
│   │   ├── deferred_box.gltf
│   │   ├── deferred_floor.gltf
│   │   ├── displacement_plane.gltf
│   │   ├── fireplace.gltf
│   │   ├── glowsphere.gltf
│   │   ├── gltf
│   │   ├── lavaplanet.gltf
│   │   ├── oaktree.gltf
│   │   ├── plane.gltf
│   │   ├── plane_circle.gltf
│   │   ├── plane_z.gltf
│   │   ├── plants.gltf
│   │   ├── reflection_scene.gltf
│   │   ├── retroufo.glb
│   │   ├── retroufo.gltf
│   │   ├── retroufo_glow.glb
│   │   ├── retroufo_glow.gltf
│   │   ├── retroufo_license.txt
│   │   ├── retroufo_red_lowpoly.gltf
│   │   ├── rock01.gltf
│   │   ├── samplebuilding.gltf
│   │   ├── samplebuilding_glass.gltf
│   │   ├── sampleroom.gltf
│   │   ├── samplescene.gltf
│   │   ├── shadowscene_fire.gltf
│   │   ├── sibenik.gltf
│   │   ├── sphere.gltf
│   │   ├── sponza
│   │   ├── suzanne.gltf
│   │   ├── suzanne_lods.gltf
│   │   ├── teapot.gltf
│   │   ├── terrain_gridlines.gltf
│   │   ├── torusknot.gltf
│   │   ├── treasure_glow.gltf
│   │   ├── treasure_smooth.gltf
│   │   ├── tunnel_cylinder.gltf
│   │   ├── venus.gltf
│   │   ├── voyager.gltf
│   │   ├── vulkanscene_license.txt
│   │   ├── vulkanscene_shadow.gltf
│   │   ├── vulkanscenebackground.gltf
│   │   ├── vulkanscenelogos.gltf
│   │   └── vulkanscenemodels.gltf
│   └── textures
│       ├── colored_glass_rgba.ktx
│       ├── crate01_color_height_rgba.ktx
│       ├── crate02_color_height_rgba.ktx
│       ├── cubemap_array.ktx
│       ├── cubemap_space.ktx
│       ├── cubemap_vulkan.ktx
│       ├── cubemap_yokohama_rgba.ktx
│       ├── fireplace_colormap_rgba.ktx
│       ├── fireplace_normalmap_rgba.ktx
│       ├── font_bitmap_rgba.ktx
│       ├── font_sdf_rgba.ktx
│       ├── gratefloor_rgba.ktx
│       ├── gridlines.ktx
│       ├── ground_dry_rgba.ktx
│       ├── hdr
│       ├── lavaplanet_rgba.ktx
│       ├── matcap_array_rgba.ktx
│       ├── metalplate01_rgba.ktx
│       ├── metalplate_nomips_rgba.ktx
│       ├── particle01_rgba.ktx
│       ├── particle_fire.ktx
│       ├── particle_gradient_rgba.ktx
│       ├── particle_smoke.ktx
│       ├── rocks_color_rgba.ktx
│       ├── rocks_normal_height_rgba.ktx
│       ├── skysphere_rgba.ktx
│       ├── stonefloor01_color_rgba.ktx
│       ├── stonefloor01_normal_rgba.ktx
│       ├── stonefloor02_color_rgba.ktx
│       ├── stonefloor02_normal_rgba.ktx
│       ├── stonefloor03_color_height_rgba.ktx
│       ├── terrain_heightmap_r16.ktx
│       ├── terrain_texturearray_rgba.ktx
│       ├── texture_orientation_ccw_rgba.ktx
│       ├── texture_orientation_cw_rgba.ktx
│       ├── texturearray_plants_rgba.ktx
│       ├── texturearray_rgba.ktx
│       ├── texturearray_rocks_rgba.ktx
│       ├── vulkan_11_rgba.ktx
│       └── vulkan_cloth_rgba.ktx
├── base
│   ├── CMakeLists.txt
│   ├── CommandLineParser.hpp
│   ├── VulkanAndroid.cpp
│   ├── VulkanAndroid.h
│   ├── VulkanBuffer.cpp
│   ├── VulkanBuffer.h
│   ├── VulkanDebug.cpp
│   ├── VulkanDebug.h
│   ├── VulkanDevice.cpp
│   ├── VulkanDevice.h
│   ├── VulkanFrameBuffer.hpp
│   ├── VulkanInitializers.hpp
│   ├── VulkanRaytracingSample.cpp
│   ├── VulkanRaytracingSample.h
│   ├── VulkanSwapChain.cpp
│   ├── VulkanSwapChain.h
│   ├── VulkanTexture.cpp
│   ├── VulkanTexture.h
│   ├── VulkanTools.cpp
│   ├── VulkanTools.h
│   ├── VulkanUIOverlay.cpp
│   ├── VulkanUIOverlay.h
│   ├── VulkanglTFModel.cpp
│   ├── VulkanglTFModel.h
│   ├── benchmark.hpp
│   ├── camera.hpp
│   ├── frustum.hpp
│   ├── keycodes.hpp
│   ├── threadpool.hpp
│   ├── vulkanexamplebase.cpp
│   └── vulkanexamplebase.h
├── bin
├── cmake
│   ├── FindDirectFB.cmake
│   ├── FindWayland.cmake
│   └── FindXCB.cmake
├── examples
│   ├── CMakeLists.txt
│   ├── imgui
│   │   └── main.cpp
│   ├── implot
│   │   └── main.cpp
│   └── multiview
│       └── multiview.cpp
├── external
│   ├── glm
│   │   ├── CMakeLists.txt
│   │   ├── cmake
│   │   ├── doc
│   │   ├── glm
│   │   ├── manual.md
│   │   ├── readme.md
│   │   ├── test
│   │   └── util
│   ├── imgui
│   │   ├── LICENSE.txt
│   │   ├── imconfig.h
│   │   ├── imgui.cpp
│   │   ├── imgui.h
│   │   ├── imgui_demo.cpp
│   │   ├── imgui_draw.cpp
│   │   ├── imgui_internal.h
│   │   ├── imgui_widgets.cpp
│   │   ├── imstb_rectpack.h
│   │   ├── imstb_textedit.h
│   │   └── imstb_truetype.h
│   ├── implot
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── TODO.md
│   │   ├── implot.cpp
│   │   ├── implot.h
│   │   ├── implot_demo.cpp
│   │   ├── implot_internal.h
│   │   └── implot_items.cpp

felixmaldonadoos avatar Nov 22 '23 01:11 felixmaldonadoos