find_program(GHC ghc REQUIRED) #find_program(GHC "stack") #if (GHC) # list(APPEND GHC ghc --) #else () # find_program(GHC ghc REQUIRED) #endif () # run `$ cabal install --lib parallel` to compile binarytrees set(sources cfold.hs deriv.hs nqueens.hs rbtree.hs) foreach (source IN LISTS sources) get_filename_component(name "${source}" NAME_WE) set(name "hs-${name}") add_custom_command( OUTPUT ${name} COMMAND ${GHC} -O2 -o ${name} "$" DEPENDS ${source} VERBATIM) add_custom_target(update-${name} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${name}) add_executable(${name}-exe IMPORTED) set_target_properties(${name}-exe PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${name}") add_test(NAME ${name} COMMAND ${name}-exe) set_tests_properties(${name} PROPERTIES LABELS haskell) endforeach ()