cmake_minimum_required(VERSION 3.12) project(zip LANGUAGES C) set(HEADERS common.h interpreter.h memory.h messages.h oc_0op.h oc_1op.h oc_2op.h oc_var_op.h oc_ext.h opcodes.h portme.h state.h stddclmr.h story.h zork1.h ) list(TRANSFORM HEADERS PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/include/") set(SOURCE interpreter.c main.c memory.c oc_0op.c oc_1op.c oc_2op.c oc_var_op.c oc_ext.c opcodes.c portme.c state.c story.c ) list(TRANSFORM SOURCE PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/src/") add_executable(${CMAKE_PROJECT_NAME} ${HEADERS} ${SOURCE} ) target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)