Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
34 lines
906 B
CMake
34 lines
906 B
CMake
cmake_minimum_required (VERSION 2.6)
|
|
project(Assembler C)
|
|
message("CTEST_FULL_OUTPUT ")
|
|
set(CMAKE_VERBOSE_MAKEFILE 1)
|
|
|
|
set(SRCS)
|
|
|
|
# (at least) the following toolchains can process assembler files directly
|
|
# and also generate assembler files from C:
|
|
if("${CMAKE_GENERATOR}" MATCHES "Makefile")
|
|
if(("${CMAKE_C_COMPILER_ID}" MATCHES "^(GNU|HP|SunPro|XL)$") OR ("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel" AND UNIX))
|
|
set(C_FLAGS "${CMAKE_C_FLAGS}")
|
|
separate_arguments(C_FLAGS)
|
|
set(SRCS main.s)
|
|
add_custom_command(
|
|
OUTPUT main.s
|
|
COMMAND ${CMAKE_C_COMPILER} ${C_FLAGS} -S ${CMAKE_CURRENT_SOURCE_DIR}/main.c -o main.s
|
|
DEPENDS main.c
|
|
VERBATIM
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
|
|
if(SRCS)
|
|
set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS}")
|
|
enable_language(ASM OPTIONAL)
|
|
else()
|
|
message(STATUS "No assembler enabled, using C")
|
|
set(SRCS main.c)
|
|
endif()
|
|
|
|
add_executable(HelloAsm ${SRCS})
|