cmake_minimum_required(VERSION 3.12) project(zip LANGUAGES C) set(HEADERS memory.h oc_0op.h oc_1op.h oc_2op.h oc_var_op.h oc_ext.h opcodes.h state.h stddclmr.h story.h text.h zork1.h ) list(TRANSFORM HEADERS PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/include/") set(SOURCE main.c memory.c oc_0op.c oc_1op.c oc_2op.c oc_var_op.c oc_ext.c opcodes.c state.c story.c text.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)