title: Naming executables in cmake
body: <p>I'm working on a project and decided to port it to CMake. While I was configuring I used the placeholder build name build; no problems were encountered. But after I switched the name to <code>S&amp;W</code>, CMake wouldn't let me build. It produced the error message:</p>
  
  <pre><code>[cmake] CMake Error at CMakeLists.txt:28 (add_executable):
  [cmake]   The target name "S&amp;W" is reserved or not valid for certain CMake features,
  [cmake]   such as generator expressions, and may result in undefined behavior.
  </code></pre>
  
  <p>I'm pretty sure the name <code>S&amp;W</code> is not reserved by CMake.</p>
  
  <p>So Why is this happening? Can I do anything to fix this error?</p>
  
  <pre><code>cmake_minimum_required(VERSION 3.14)
  project(S&amp;W)
  
  include_directories("source")
  include_directories("dependencies/include")
  
  file(GLOB_RECURSE SRC "source/*.cpp")
  LINK_DIRECTORIES("dependencies/lib/x86")
  
  if ( MINGW )
  set(CMAKE_EXE_LINKER_FLAGS  "-static-libgcc -static-libstdc++")
  LINK_LIBRARIES("mingw32")
  endif ( MINGW )
  
  LINK_LIBRARIES("libSDL2main.a")
  LINK_LIBRARIES("libSDL2.dll.a")
  LINK_LIBRARIES("libSDL2_mixer.dll.a")
  
  add_executable(${PROJECT_NAME} ${SRC}) 
  </code></pre>