CMake version related problem?

I found a same CMakeLists.txt file behaving differently on Linux. I was using Qt Creator IDE with cmake. In previous version without target_link_libraries() command the project was building alright but with recent version I had to use target_link_libraries for inclusion of ‘math.h’.
Another issue I found target_include_directories is not showing headers under Header Files directory as in file system. In my case I had headers in ‘include’ folder but following command is putting all files directly under Header Files directory unlike source files with .c and .cpp type files.
target_include_directories(Bool_Multi PUBLIC include)
However I found in youtube demos of Visual Studio the project is being created in same style as in File system.
Request some help to clear my doubt why the behaviour is so.