summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
blob: fbd7581490a7cdea5629c9ecac37042b80782649 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cmake_minimum_required(VERSION 4.3)
project(HelloCMake)

find_program(CSC_EXECUTABLE NAMES csc csc.exe)
if(NOT CSC_EXECUTABLE)
    message(FATAL_ERROR "C# compiler (csc) not found!")
endif()

set(OUTPUT_DIR ${CMAKE_BINARY_DIR})
set(SOURCES ${CMAKE_SOURCE_DIR}/Program.cs)
set(TARGET HelloCMake)
set(OUTPUT_FILE ${OUTPUT_DIR}/${TARGET}.exe)

add_custom_command(
    OUTPUT ${OUTPUT_FILE}
    COMMAND ${CSC_EXECUTABLE} /target:exe /out:${OUTPUT_FILE} ${SOURCES}
    DEPENDS ${SOURCES}
    COMMENT "Compiling ${TARGET} with csc..."
)

add_custom_target(${TARGET} ALL DEPENDS ${OUTPUT_FILE})