From fa06b406000de82fea4b3837c467e2019be1f043 Mon Sep 17 00:00:00 2001 From: "Deano Calver dean." Date: Sat, 4 Sep 2010 13:11:58 +0100 Subject: [PATCH] Patches to make windows dmd pass test 1,2,6,7 --- cmaked/CMakeDInformation.cmake | 5 ++-- cmaked/Platform/Windows-dmd.cmake | 48 ++++++++++++++++++++++--------- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/cmaked/CMakeDInformation.cmake b/cmaked/CMakeDInformation.cmake index 9d85f09..6c3a2f6 100644 --- a/cmaked/CMakeDInformation.cmake +++ b/cmaked/CMakeDInformation.cmake @@ -29,6 +29,7 @@ IF(CMAKE_D_COMPILER_ID) ENDIF(CMAKE_D_COMPILER_ID) # SET(CMAKE_D_OUTPUT_EXTENSION .o) +SET(CMAKE_D_OUTPUT_EXTENSION_REPLACE TRUE ) SET(CMAKE_BASE_NAME) GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_D_COMPILER} NAME_WE) @@ -174,12 +175,12 @@ SET(CMAKE_D_ARCHIVE_FINISH " ") # compile a D file into an object file IF(NOT CMAKE_D_COMPILE_OBJECT) SET(CMAKE_D_COMPILE_OBJECT - " ${CMAKE_D_DASH_O} -c ") + " -v -od${CMAKE_CURRENT_BINARY_DIR}/ ${CMAKE_D_DASH_O} -c ") ENDIF(NOT CMAKE_D_COMPILE_OBJECT) IF(NOT CMAKE_D_LINK_EXECUTABLE) SET(CMAKE_D_LINK_EXECUTABLE - " ${CMAKE_D_DASH_O} ${CMAKE_D_STDLIBS}") + " -v ${CMAKE_D_DASH_O} ${CMAKE_D_STDLIBS}") ENDIF(NOT CMAKE_D_LINK_EXECUTABLE) IF(NOT CMAKE_EXECUTABLE_RUNTIME_D_FLAG) diff --git a/cmaked/Platform/Windows-dmd.cmake b/cmaked/Platform/Windows-dmd.cmake index 05e6bb2..ddd21e9 100644 --- a/cmaked/Platform/Windows-dmd.cmake +++ b/cmaked/Platform/Windows-dmd.cmake @@ -11,15 +11,9 @@ # Modified from CMake 2.6.5 gcc.cmake # See http://www.cmake.org/HTML/Copyright.html for details # - -SET(CMAKE_D_OUTPUT_EXTENSION .obj) +MESSAGE( "**** Debug Info: Enter Windows-dmd.cmake" ) -IF(CMAKE_D_USE_TANGO) - SET(DSTDLIB_FLAGS "-version=Tango") -ENDIF(CMAKE_D_USE_TANGO) -IF(CMAKE_D_USE_PHOBOS) - SET(DSTDLIB_FLAGS "-version=Phobos") -ENDIF(CMAKE_D_USE_PHOBOS) +#SET(DSTDLIB_FLAGS "-version=Phobos") IF(CMAKE_D_BUILD_DOCS) SET(DDOC_FLAGS "-D -Dddocumentation") #FOREACH(item ${CMAKE_D_DDOC_FILES}) @@ -27,12 +21,38 @@ IF(CMAKE_D_BUILD_DOCS) #ENDFOREACH(item) ENDIF(CMAKE_D_BUILD_DOCS) -SET (CMAKE_D_FLAGS_INIT "-version=Win -version=${CMAKE_BUILD_TYPE}Build ${DSTDLIB_FLAGS}") -SET (CMAKE_D_FLAGS_DEBUG_INIT "-g ${DDOC_FLAGS}") -# SET (CMAKE_D_FLAGS_MINSIZEREL_INIT "-Os ${DDOC_FLAGS}") +SET(CMAKE_D_OUTPUT_EXTENSION .obj) +SET(CMAKE_D_DASH_O "-of") +SET(CMAKE_BASE_NAME dmd) + +SET(CMAKE_SHARED_LIBRARY_D_FLAGS "") # -pic +SET(CMAKE_SHARED_LIBRARY_CREATE_D_FLAGS "-shared") # -shared +SET(CMAKE_SHARED_LIBRARY_LINK_D_FLAGS "") # +s, flag for exe link to use shared lib +SET(CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG "") # -rpath +SET(CMAKE_SHARED_LIBRARY_RUNTIME_D_FLAG_SEP "") # : or empty +SET(CMAKE_INCLUDE_FLAG_D "-I") # -I +SET(CMAKE_INCLUDE_FLAG_D_SEP "") # , or empty +SET(CMAKE_LIBRARY_PATH_FLAG "-L-L") +SET(CMAKE_LIBRARY_PATH_TERMINATOR "") # for the Digital Mars D compiler the link paths have to be terminated with a "/" + +SET(CMAKE_LINK_LIBRARY_FLAG "-L-l") +SET(CMAKE_STATIC_LIBRARY_PREFIX "") # +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".lib") # lib +SET(CMAKE_SHARED_LIBRARY_PREFIX "") # +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") # .dll +SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +SET(CMAKE_DL_LIBS "dl") + +SET(CMAKE_FIND_LIBRARY_PREFIXES "") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") + +SET (CMAKE_D_FLAGS_INIT "") +# DMD can only produce 32-bit binaries for now +SET (CMAKE_D_LINK_FLAGS "") +SET (CMAKE_D_FLAGS_DEBUG_INIT "-g -debug ${DDOC_FLAGS}") SET (CMAKE_D_FLAGS_RELEASE_INIT "-O -release -inline ${DDOC_FLAGS}") SET (CMAKE_D_FLAGS_RELWITHDEBINFO_INIT "-O -g ${DDOC_FLAGS}") -# SET (CMAKE_D_CREATE_PREPROCESSED_SOURCE " -E > ") -SET (CMAKE_D_CREATE_ASSEMBLY_SOURCE " -S -o ") -# SET (CMAKE_INCLUDE_SYSTEM_FLAG_D "-isystem ") +SET (CMAKE_D_CREATE_ASSEMBLY_SOURCE " -S -of") + +MESSAGE( "**** Debug Info: Exit Win-dmd.cmake" )