Prevent entering “/”, “\” and “:” in team and scheme names.
The name of teams and schems is saved in the file name itself, so these characters would cause trouble as they are used in path names in Linux and Windows.
find_package(GHC REQUIRED)
set(pas2c_sources
Main.hs
PascalBasics.hs
PascalParser.hs
PascalPreprocessor.hs
PascalUnitSyntaxTree.hs
Pas2C.hs
)
set(pas2c_main ${CMAKE_SOURCE_DIR}/tools/pas2c/Main.hs)
set(ghc_flags
--make ${pas2c_main}
-i${CMAKE_SOURCE_DIR}/tools/pas2c/
-o ${EXECUTABLE_OUTPUT_PATH}/pas2c${CMAKE_EXECUTABLE_SUFFIX}
-odir ${CMAKE_CURRENT_BINARY_DIR}
-hidir ${CMAKE_CURRENT_BINARY_DIR}
${haskell_flags}
)
add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/pas2c${CMAKE_EXECUTABLE_SUFFIX}"
COMMAND "${GHC_EXECUTABLE}"
ARGS ${ghc_flags}
MAIN_DEPENDENCY ${pas2c_main}
DEPENDS ${pas2c_sources}
)
add_custom_target(pas2c ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/pas2c${CMAKE_EXECUTABLE_SUFFIX}")