Mercurial > projects > qtd
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} |