Bug 493908

Summary: Setting FOLDER property on CMake executable breaks launch configuration detection
Product: [Applications] kdevelop Reporter: git.ceeac
Component: Build tools: CMakeAssignee: kdevelop-bugs-null
Status: REPORTED ---    
Severity: normal CC: igorkuo
Priority: NOR    
Version First Reported In: 6.0.240801   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description git.ceeac 2024-10-01 10:43:38 UTC
SUMMARY
If a FOLDER property is set on a CMake target added via add_executable, this target is not included in the list of auto-detected lauch configurations (via Run -> Configure Launches -> Add...)

STEPS TO REPRODUCE
1. Have a CMakeLists.txt that sets the FOLDER property on an exectuable target, i.e.

    add_executable(${example_name} ${ARGN})
    set_target_properties(${example_name} PROPERTIES FOLDER examples)

2. Try to add a launch configuration for the executable (via Run -> Configure Launches... -> Add...)

OBSERVED RESULT
There is no option to create a lauch configuration for the target (except the generic "Compiled Binary" / "Plasmoid Launcher" / "Script Application" ones). This happens even if the global USE_FOLDERS property is not set or explicitly disabled.
If the call to set_target_properties is commented out, the lauch configuration can be created after a KDevelop restart.

SOFTWARE/OS VERSIONS
$ kinfo
Operating System: Arch Linux 
KDE Plasma Version: 6.1.5
KDE Frameworks Version: 6.6.0
Qt Version: 6.7.3
Kernel Version: 6.10.10-arch1-1 (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i7-6700K CPU @ 4.00GHz
Memory: 15.6 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 1080/PCIe/SSE2


ADDITIONAL INFORMATION
Comment 1 Igor Kushnir 2024-10-01 18:56:08 UTC
I have never used the FOLDER property myself, but recently stumbled upon the commit that added a related feature: https://commits.kde.org/kdevelop/ddca5c1fdd169aee750489958a38fb1c8edcee5f . Either the intended behavior doesn't suit your workflow or there is a bug in the original implementation or a regression crept into the code at some point.