comparison CMakeLists.txt @ 11:28c9f8f8f34b

Another small fix: correctly processing version of ldc based on llvm from trunk.
author SokoL_SD
date Thu, 14 May 2009 13:42:02 +0000
parents 390725da0980
children 74465e760fde
comparison
equal deleted inserted replaced
10:390725da0980 11:28c9f8f8f34b
37 string(REGEX REPLACE "Digital Mars D Compiler v[0-9]\\.([0-9]+)" "\\1" D_FRONTEND "${dmd_version}") 37 string(REGEX REPLACE "Digital Mars D Compiler v[0-9]\\.([0-9]+)" "\\1" D_FRONTEND "${dmd_version}")
38 else (dmd_version) 38 else (dmd_version)
39 string(REGEX MATCH "LLVM-based D Compiler" is_ldc "${d_output}") 39 string(REGEX MATCH "LLVM-based D Compiler" is_ldc "${d_output}")
40 if (is_ldc) 40 if (is_ldc)
41 exec_program(${DC} ARGS "--version" OUTPUT_VARIABLE d_output) 41 exec_program(${DC} ARGS "--version" OUTPUT_VARIABLE d_output)
42 string(REGEX MATCH "based on DMD v[0-9]\\.[0-9]+ and llvm [0-9]\\.[0-9]+" ldc_version "${d_output}") 42 string(REGEX MATCH "based on DMD v[0-9]\\.[0-9]+" ldc_version "${d_output}")
43 set(D_IS_LLVM true) 43 set(D_IS_LLVM true)
44 if(ldc_version) 44 if(ldc_version)
45 set(D_IS_LLVM true) 45 set(D_IS_LLVM true)
46 set(D_COMPILER_NAME "LLVM-based D Compiler") 46 set(D_COMPILER_NAME "LLVM-based D Compiler")
47 string(REGEX REPLACE "based on DMD v([0-9])\\.[0-9]+ and llvm [0-9]\\.[0-9]+" "\\1" D_VERSION "${ldc_version}") 47 string(REGEX REPLACE "based on DMD v([0-9])\\.[0-9]+" "\\1" D_VERSION "${ldc_version}")
48 string(REGEX REPLACE "based on DMD v[0-9]\\.([0-9]+) and llvm [0-9]\\.[0-9]+" "\\1" D_FRONTEND "${ldc_version}") 48 string(REGEX REPLACE "based on DMD v[0-9]\\.([0-9]+)" "\\1" D_FRONTEND "${ldc_version}")
49 else(ldc_version) 49 else(ldc_version)
50 message(FATAL_ERROR "LDC compiler was found, but the version can not be processed") 50 message(FATAL_ERROR "LDC compiler was found, but the version can not be processed")
51 endif(ldc_version) 51 endif(ldc_version)
52 else (is_ldc) 52 else (is_ldc)
53 message(FATAL_ERROR "D compliler not founded") 53 message(FATAL_ERROR "D compliler not founded")
97 set(D_FLAGS ${D_FLAGS} -I${CMAKE_BINARY_DIR} -I${CMAKE_SOURCE_DIR}) 97 set(D_FLAGS ${D_FLAGS} -I${CMAKE_BINARY_DIR} -I${CMAKE_SOURCE_DIR})
98 if(D_IS_MARS AND ${CMAKE_SYSTEM_NAME} STREQUAL Windows) 98 if(D_IS_MARS AND ${CMAKE_SYSTEM_NAME} STREQUAL Windows)
99 else(D_IS_MARS AND ${CMAKE_SYSTEM_NAME} STREQUAL Windows) 99 else(D_IS_MARS AND ${CMAKE_SYSTEM_NAME} STREQUAL Windows)
100 set(D_FLAGS ${D_FLAGS} -L-L${CMAKE_BINARY_DIR}/lib) 100 set(D_FLAGS ${D_FLAGS} -L-L${CMAKE_BINARY_DIR}/lib)
101 endif(D_IS_MARS AND ${CMAKE_SYSTEM_NAME} STREQUAL Windows) 101 endif(D_IS_MARS AND ${CMAKE_SYSTEM_NAME} STREQUAL Windows)
102
103 102
104 # System specifc settings. 103 # System specifc settings.
105 if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) 104 if(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
106 set(implib implib) 105 set(implib implib)
107 find_program(IMPLIB ${implib}) 106 find_program(IMPLIB ${implib})
418 foreach(link ${link_example}) 417 foreach(link ${link_example})
419 set(${package}_lib_param ${${package}_lib_param} ${link}) 418 set(${package}_lib_param ${${package}_lib_param} ${link})
420 endforeach(link ${link_example}) 419 endforeach(link ${link_example})
421 endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows AND D_IS_MARS) 420 endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows AND D_IS_MARS)
422 421
423 # set(regexp_str "(${CMAKE_BINARY_DIR}|${CMAKE_SOURCE_DIR})/([A-Za-z0-9\\-_\\\\/]+)[/]+([A-Za-z0-9\\-_\\\\]+).d") 422 set(regexp_str "(${CMAKE_BINARY_DIR}|${CMAKE_SOURCE_DIR})/([A-Za-z0-9\\-_\\\\/]+)[/]+([A-Za-z0-9\\-_\\\\]+).d")
424 # foreach(source ${d_sources}) 423 foreach(source ${d_sources})
425 # # find_file(source ${source} PATHS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} 424 # find_file(source ${source} PATHS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
426 # # ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}) 425 # ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
427 # string(REGEX REPLACE ${regexp_str} "\\2" inc_path "${source}") 426 string(REGEX REPLACE ${regexp_str} "\\2" inc_path "${source}")
428 # string(REGEX REPLACE ${regexp_str} "\\3" file_name "${source}") 427 string(REGEX REPLACE ${regexp_str} "\\3" file_name "${source}")
429 # set(interface_file_path ${CMAKE_BINARY_DIR}/include/${inc_path}) 428 set(interface_file_path ${CMAKE_BINARY_DIR}/include/${inc_path})
430 # set(interface_file "${interface_file_path}/${file_name}.di") 429 set(interface_file "${interface_file_path}/${file_name}.di")
431 # if(NOT "${file_name}" STREQUAL "QGlobal" AND GENERATE_DI_FILES) 430 if(NOT "${file_name}" STREQUAL "QGlobal" AND GENERATE_DI_FILES)
432 # add_custom_command(OUTPUT "${interface_file}" 431 add_custom_command(OUTPUT "${interface_file}"
433 # COMMAND "${DC}" 432 COMMAND "${DC}"
434 # ARGS ${D_FLAGS} -o- -H -Hd${interface_file_path} ${source} 433 ARGS ${D_FLAGS} -o- -H -Hd${interface_file_path} ${source}
435 # COMMENT "Generating header for ${source}" 434 COMMENT "Generating header for ${source}"
436 # DEPENDS ${source} 435 DEPENDS ${source}
437 # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 436 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
438 # ) 437 )
439 # else(NOT "${file_name}" STREQUAL "QGlobal" AND GENERATE_DI_FILES) 438 else(NOT "${file_name}" STREQUAL "QGlobal" AND GENERATE_DI_FILES)
440 # add_custom_command(OUTPUT "${interface_file}" 439 add_custom_command(OUTPUT "${interface_file}"
441 # COMMAND ${CMAKE_COMMAND} -E make_directory ${interface_file_path} 440 COMMAND ${CMAKE_COMMAND} -E make_directory ${interface_file_path}
442 # COMMAND ${CMAKE_COMMAND} -E remove -f ${interface_file} 441 COMMAND ${CMAKE_COMMAND} -E remove -f ${interface_file}
443 # COMMAND ${CMAKE_COMMAND} -E copy ${source} ${interface_file} 442 COMMAND ${CMAKE_COMMAND} -E copy ${source} ${interface_file}
444 # COMMENT "" 443 COMMENT ""
445 # DEPENDS ${source} 444 DEPENDS ${source}
446 # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 445 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
447 # ) 446 )
448 # endif(NOT "${file_name}" STREQUAL "QGlobal" AND GENERATE_DI_FILES) 447 endif(NOT "${file_name}" STREQUAL "QGlobal" AND GENERATE_DI_FILES)
449 # set(interfaces_list ${interfaces_list} ${interface_file_path}/${file_name}.di) 448 set(interfaces_list ${interfaces_list} ${interface_file_path}/${file_name}.di)
450 # endforeach(source) 449 endforeach(source)
451 endforeach(package_big ${packages_big}) 450 endforeach(package_big ${packages_big})
452 # add_custom_target(generate_headers DEPENDS ${interfaces_list}) 451 # add_custom_target(generate_headers DEPENDS ${interfaces_list})
453 452
454 ##-------------------------------------------- 453 ##--------------------------------------------
455 ## Build other parts of the QtD. 454 ## Build other parts of the QtD.