diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c055ab6..12fda70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,32 +46,36 @@ set(I386_SOURCES i386-gen.c i386-asm.c i386-asm.h i386-tok.h) set(X86_64_SOURCES x86_64-gen.c i386-asm.c x86_64-asm.h) if(TCC_TARGET STREQUAL "Win32") - set(TCC_TARGET_I386 ON) - set(TCC_TARGET_PE ON) + set(TCC_TARGET_FLAGS -DTCC_TARGET_I386 -DTCC_TARGET_PE) set(LIBTCC_TARGET_SOURCES ${I386_SOURCES} tccpe.c) elseif(TCC_TARGET STREQUAL "Win64") - set(TCC_TARGET_PE ON) - set(TCC_TARGET_X86_64 ON) + set(TCC_TARGET_FLAGS -DTCC_TARGET_X86_64 -DTCC_TARGET_PE) set(LIBTCC_TARGET_SOURCES ${X86_64_SOURCES} tccpe.c) elseif(TCC_TARGET STREQUAL "WinCE") - set(TCC_TARGET_ARM ON) + set(TCC_TARGET_FLAGS -DTCC_TARGET_ARM + -DTCC_ARM_VERSION=${TCC_ARM_VERSION}) set(LIBTCC_TARGET_SOURCES arm-gen.c tccpe.c) elseif(TCC_TARGET STREQUAL "i386") - set(TCC_TARGET_I386 ON) + set(TCC_TARGET_FLAGS -DTCC_TARGET_I386) set(LIBTCC_TARGET_SOURCES ${I386_SOURCES}) elseif(TCC_TARGET STREQUAL "x86-64") - set(TCC_TARGET_X86_64 ON) + set(TCC_TARGET_FLAGS -DTCC_TARGET_X86_64) set(LIBTCC_TARGET_SOURCES ${X86_64_SOURCES}) elseif(TCC_TARGET STREQUAL "ARM") - set(TCC_TARGET_ARM ON) + set(TCC_TARGET_FLAGS -DTCC_TARGET_ARM + -DTCC_ARM_VERSION=${TCC_ARM_VERSION} + -DTCC_ARM_EABI=${TCC_ARM_EABI} + -DTCC_ARM_VFP=${TCC_ARM_VFP} + -DTCC_ARM_HARDFLOAT=${TCC_ARM_HARDFLOAT}) set(LIBTCC_TARGET_SOURCES arm-gen.c) elseif(TCC_TARGET STREQUAL "C67") - set(TCC_TARGET_C67 ON) + set(TCC_TARGET_FLAGS -DTCC_TARGET_C67) set(LIBTCC_TARGET_SOURCES c67-gen.c tcccoff.c) else() message(FATAL_ERROR "Unrecognised target in TCC_TARGET, must be one of ${TCC_TARGET_LIST}") endif() +add_definitions(${TCC_TARGET_FLAGS}) file(STRINGS "VERSION" TCC_VERSION) list(GET TCC_VERSION 0 TCC_VERSION) include_directories(${CMAKE_BINARY_DIR}) @@ -86,7 +90,7 @@ set_target_properties(libtcc PROPERTIES PREFIX "") add_executable(tcc tcc.c) target_link_libraries(tcc libtcc) -set(TCC_CFLAGS -I${CMAKE_SOURCE_DIR}/include) +set(TCC_CFLAGS -I${CMAKE_SOURCE_DIR}/include ${CMAKE_C_FLAGS}) if(TCC_TARGET MATCHES "^Win") set(TCC_CFLAGS ${TCC_CFLAGS} -I${CMAKE_SOURCE_DIR}/win32/include) endif() @@ -108,7 +112,7 @@ elseif(TCC_TARGET STREQUAL "x86-64") endif() if (TCC_TARGET MATCHES "^Win") - set(XCC tcc ${TCC_CFLAGS} -B${CMAKE_SOURCE_DIR}/win32) + set(XCC tcc ${TCC_CFLAGS} ${TCC_TARGET_FLAGS} -B${CMAKE_SOURCE_DIR}/win32) set(XAR tiny_libmaker${CMAKE_EXECUTABLE_SUFFIX}) set(XDEPENDS tiny_libmaker) endif() @@ -119,7 +123,7 @@ if(LIBTCC1_SOURCES) string(REGEX MATCH "[^/]+$" LIBTCC1_O ${LIBTCC1_C}) string(REGEX MATCH "^[^.]+" LIBTCC1_O ${LIBTCC1_O}) set(LIBTCC1_O ${LIBTCC1_O}.o) - add_custom_command(OUTPUT ${LIBTCC1_O} COMMAND ${XCC} -c ${CMAKE_SOURCE_DIR}/${LIBTCC1_C} -o ${LIBTCC1_O}) + add_custom_command(OUTPUT ${LIBTCC1_O} COMMAND ${XCC} -c ${CMAKE_SOURCE_DIR}/${LIBTCC1_C} -o ${LIBTCC1_O} DEPENDS ${CMAKE_SOURCE_DIR}/${LIBTCC1_C}) list(APPEND LIBTCC1_OBJECTS ${LIBTCC1_O}) endforeach() add_custom_command(OUTPUT libtcc1.a COMMAND ${XAR} libtcc1.a ${LIBTCC1_OBJECTS} DEPENDS ${LIBTCC1_OBJECTS} ${XDEPENDS}) |
