comparison CMakeLists.txt @ 114:547cd31fa12a

CMake: improve of the windows support for ldc.
author SokoL_SD
date Wed, 03 Jun 2009 15:53:24 +0000
parents 08135aa00cc9
children 138753025375
comparison
equal deleted inserted replaced
113:8636c819ce4d 114:547cd31fa12a
472 endif(NOT GENERATE_DI_FILES) 472 endif(NOT GENERATE_DI_FILES)
473 endforeach(class) 473 endforeach(class)
474 474
475 ## Link CPP library. 475 ## Link CPP library.
476 add_library(cpp_${package} SHARED ${cpp_sources}) 476 add_library(cpp_${package} SHARED ${cpp_sources})
477 set_property(TARGET cpp_${package} PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles)
478 foreach(cpp_source ${cpp_sources})
479 set(cpp_source ${cpp_source})
480 obj_path(cpp_source)
481 set(cpp_objs ${cpp_objs} CMakeFiles/cpp_${package}.dir/${cpp_source}${CMAKE_CXX_OUTPUT_EXTENSION})
482 endforeach(cpp_source)
477 483
478 ## Link D library. 484 ## Link D library.
479 set(lib_name ${D_LIB_PREFIX}qtd${package}${D_LIB_SUFFIX}) 485 set(lib_name ${D_LIB_PREFIX}qtd${package}${D_LIB_SUFFIX})
480 set(lib lib/${lib_name}) 486 set(lib lib/${lib_name})
481 compile_d_files(${package}_dobjs objects ${d_sources}) 487 compile_d_files(${package}_dobjs objects ${d_sources})
496 endif(NOT is_found) 502 endif(NOT is_found)
497 string(TOUPPER ${req} req_upper) 503 string(TOUPPER ${req} req_upper)
498 string(TOLOWER ${req} req_lower) 504 string(TOLOWER ${req} req_lower)
499 set(link_cpp ${link_cpp} cpp_${req_lower} ${QT_QT${req_upper}_LIBRARY}) 505 set(link_cpp ${link_cpp} cpp_${req_lower} ${QT_QT${req_upper}_LIBRARY})
500 endforeach(req ${require}) 506 endforeach(req ${require})
507
508 ## Does the next three lines need for ldc?
501 string(TOUPPER ${package} package_upper) 509 string(TOUPPER ${package} package_upper)
502 set(link_cpp ${link_cpp} ${QT_QT${package_upper}_LIBRARY}) 510 set(link_cpp ${link_cpp} ${QT_QT${package_upper}_LIBRARY})
503 target_link_libraries(cpp_${package} ${link_cpp} ) 511 target_link_libraries(cpp_${package} ${link_cpp} )
504 set(cpp_lib ${CMAKE_BINARY_DIR}/lib/libcpp_${package}.dll) 512 if(D_IS_MARS)
505 set(cpp_lib_native ${cpp_lib}) 513 set(cpp_lib ${CMAKE_BINARY_DIR}/lib/libcpp_${package}.dll)
506 make_native_path(cpp_lib_native) 514 set(cpp_lib_native ${cpp_lib})
507 set(d_implib ${CMAKE_BINARY_DIR}/CMakeFiles/${package}.dir/cpp_${package}.lib) 515 make_native_path(cpp_lib_native)
508 set(d_implib_native ${d_implib}) 516 set(d_implib ${CMAKE_BINARY_DIR}/CMakeFiles/${package}.dir/cpp_${package}.lib)
509 make_native_path(d_implib_native) 517 set(d_implib_native ${d_implib})
510 add_custom_command( 518 make_native_path(d_implib_native)
519 add_custom_command(
511 OUTPUT "${d_implib}" 520 OUTPUT "${d_implib}"
512 COMMAND "${IMPLIB}" 521 COMMAND "${IMPLIB}"
513 ARGS /system /PAGESIZE:32 ${d_implib_native} ${cpp_lib_native} 522 ARGS /system /PAGESIZE:32 ${d_implib_native} ${cpp_lib_native}
514 DEPENDS "cpp_${package}" 523 DEPENDS "cpp_${package}"
515 COMMENT "Creating implib ${lib_name}" 524 COMMENT "Creating implib ${lib_name}"
516 ) 525 )
517 add_custom_command( 526
527 add_custom_command(
528 OUTPUT "${lib}"
529 COMMAND "${DC}"
530 ARGS -lib ${d_objs} ${d_implib} -of${lib}
531 DEPENDS ${d_objs} ${d_implib}
532 COMMENT "Linking ${lib_name}"
533 )
534 elseif(D_IS_MARS)
535 add_custom_command(
518 OUTPUT "${lib}" 536 OUTPUT "${lib}"
519 COMMAND "${DC}" 537 COMMAND "${CMAKE_AR}"
520 ARGS -lib ${d_objs} ${d_implib} -of${lib} 538 ARGS rcs ${lib} ${d_objs} ${cpp_objs}
521 DEPENDS ${d_objs} ${d_implib} 539 DEPENDS ${d_objs}
522 COMMENT "Linking ${lib_name}" 540 COMMENT "Linking ${lib_name}"
523 ) 541 )
542 endif(D_IS_MARS)
524 install(FILES ${cpp_lib} COMPONENT qtd DESTINATION lib) 543 install(FILES ${cpp_lib} COMPONENT qtd DESTINATION lib)
525 else(CMAKE_HOST_UNIX) 544 else(CMAKE_HOST_UNIX)
526 set_property(TARGET cpp_${package} PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles)
527 foreach(cpp_source ${cpp_sources})
528 set(cpp_source ${cpp_source})
529 obj_path(cpp_source)
530 set(cpp_objs ${cpp_objs} CMakeFiles/cpp_${package}.dir/${cpp_source}${CMAKE_CXX_OUTPUT_EXTENSION})
531 endforeach(cpp_source)
532 add_custom_command( 545 add_custom_command(
533 OUTPUT "${lib}" 546 OUTPUT "${lib}"
534 COMMAND "${CMAKE_AR}" 547 COMMAND "${CMAKE_AR}"
535 ARGS rcs ${lib} ${d_objs} ${cpp_objs} 548 ARGS rcs ${lib} ${d_objs} ${cpp_objs}
536 DEPENDS ${d_objs} cpp_${package} 549 DEPENDS ${d_objs} cpp_${package}