Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: undeclared identifiers and executable configuration. #535

Open
felixmaldonadoos opened this issue Nov 22, 2023 · 0 comments
Open

Comments

@felixmaldonadoos
Copy link

felixmaldonadoos commented Nov 22, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant