Mercurial > projects > qtd
comparison CMakeLists.txt @ 229:aac81791596b
Improve CMake script.
author | SokoL_SD |
---|---|
date | Fri, 17 Jul 2009 13:12:36 +0000 |
parents | e1e8a95dc401 |
children | b796329e8c38 |
comparison
equal
deleted
inserted
replaced
228:e1e8a95dc401 | 229:aac81791596b |
---|---|
74 set(GEN_OPT ${GEN_OPT} --cpp_shared) | 74 set(GEN_OPT ${GEN_OPT} --cpp_shared) |
75 add_definitions(-DCPP_SHARED) | 75 add_definitions(-DCPP_SHARED) |
76 endif(D_IS_MARS) | 76 endif(D_IS_MARS) |
77 string(REGEX REPLACE ".dll([A-Za-z\\.0-9]+)" "\\1" CMAKE_IMPORT_LIBRARY_SUFFIX "${CMAKE_IMPORT_LIBRARY_SUFFIX}") | 77 string(REGEX REPLACE ".dll([A-Za-z\\.0-9]+)" "\\1" CMAKE_IMPORT_LIBRARY_SUFFIX "${CMAKE_IMPORT_LIBRARY_SUFFIX}") |
78 endif(CMAKE_HOST_WIN32) | 78 endif(CMAKE_HOST_WIN32) |
79 | |
80 if(CMAKE_HOST_WIN32 AND D_IS_MARS) | |
81 set(CPP_SHARED 1) | |
82 endif(CMAKE_HOST_WIN32 AND D_IS_MARS) | |
79 | 83 |
80 set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ./) | 84 set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ./) |
81 set(GEN_OPT ${GEN_OPT} --d-target=${D_TARGET}) | 85 set(GEN_OPT ${GEN_OPT} --d-target=${D_TARGET}) |
82 | 86 |
83 ## Bootstrap settings for QtD. | 87 ## Bootstrap settings for QtD. |
310 install(FILES ${path}/${name}_enum.d DESTINATION include/d/${ins_path} COMPONENT qtd RENAME ${name}_enum.di OPTIONAL) | 314 install(FILES ${path}/${name}_enum.d DESTINATION include/d/${ins_path} COMPONENT qtd RENAME ${name}_enum.di OPTIONAL) |
311 endforeach(d_source ${d_sources}) | 315 endforeach(d_source ${d_sources}) |
312 endif(NOT GENERATE_DI_FILES) | 316 endif(NOT GENERATE_DI_FILES) |
313 | 317 |
314 ## Link CPP library. | 318 ## Link CPP library. |
315 add_library(cpp_${package} STATIC ${cpp_sources}) | 319 if(CPP_SHARED) |
320 set(cpp_method SHARED) | |
321 else(CPP_SHARED) | |
322 set(cpp_method STATIC) | |
323 endif(CPP_SHARED) | |
324 add_library(cpp_${package} ${cpp_method} ${cpp_sources}) | |
316 set_property(TARGET cpp_${package} PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles) | 325 set_property(TARGET cpp_${package} PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles) |
317 if(CMAKE_HOST_WIN32 AND D_IS_MARS) ## TODO: Replace by SEPAREATE_CPP_PART | 326 if(CPP_SHARED) |
318 else(CMAKE_HOST_WIN32 AND D_IS_MARS) | 327 else(CPP_SHARED) |
319 foreach(cpp_source ${cpp_sources}) | 328 foreach(cpp_source ${cpp_sources}) |
320 set(cpp_source ${cpp_source}) | 329 set(cpp_source ${cpp_source}) |
321 obj_path(cpp_source) | 330 obj_path(cpp_source) |
322 set(cpp_objs ${cpp_objs} ${CMAKE_BINARY_DIR}/CMakeFiles/cpp_${package}.dir/${cpp_source}${CMAKE_CXX_OUTPUT_EXTENSION}) | 331 set(cpp_objs ${cpp_objs} ${CMAKE_BINARY_DIR}/CMakeFiles/cpp_${package}.dir/${cpp_source}${CMAKE_CXX_OUTPUT_EXTENSION}) |
323 endforeach(cpp_source ${cpp_sources}) | 332 endforeach(cpp_source ${cpp_sources}) |
324 endif(CMAKE_HOST_WIN32 AND D_IS_MARS) | 333 endif(CPP_SHARED) |
325 | 334 |
326 ## Link D library. | 335 ## Link D library. |
327 set(lib_name qtd${package}) | 336 set(lib_name qtd${package}) |
328 if(BUILD_SHARED_LIBRARIES) | 337 if(BUILD_SHARED_LIBRARIES) |
329 set(lib lib/${CMAKE_SHARED_LIBRARY_PREFIX}${lib_name}${CMAKE_SHARED_LIBRARY_SUFFIX}) | 338 set(lib lib/${CMAKE_SHARED_LIBRARY_PREFIX}${lib_name}${CMAKE_SHARED_LIBRARY_SUFFIX}) |
353 set_property(TARGET cpp_${package} PROPERTY RUNTIME_OUTPUT_DIRECTORY lib) | 362 set_property(TARGET cpp_${package} PROPERTY RUNTIME_OUTPUT_DIRECTORY lib) |
354 set_property(TARGET cpp_${package} PROPERTY ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles) | 363 set_property(TARGET cpp_${package} PROPERTY ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles) |
355 string(TOUPPER ${package} package_upper) | 364 string(TOUPPER ${package} package_upper) |
356 set(link_cpp ${link_cpp} ${QT_QT${package_upper}_LIBRARY}) | 365 set(link_cpp ${link_cpp} ${QT_QT${package_upper}_LIBRARY}) |
357 target_link_libraries(cpp_${package} ${link_cpp} ) | 366 target_link_libraries(cpp_${package} ${link_cpp} ) |
358 if(CMAKE_HOST_WIN32 AND D_IS_MARS) ## TODO: Replace by SEPAREATE_CPP_PART | 367 if(CPP_SHARED) |
359 set(cpp_lib ${CMAKE_BINARY_DIR}/lib/libcpp_${package}.dll) | 368 set(cpp_lib ${CMAKE_BINARY_DIR}/lib/libcpp_${package}.dll) |
360 set(cpp_lib_native ${cpp_lib}) | 369 set(cpp_lib_native ${cpp_lib}) |
361 make_native_path(cpp_lib_native) | 370 make_native_path(cpp_lib_native) |
362 set(d_implib ${CMAKE_BINARY_DIR}/CMakeFiles/${package}.dir/cpp_${package}.lib) | 371 set(d_implib ${CMAKE_BINARY_DIR}/CMakeFiles/${package}.dir/cpp_${package}.lib) |
363 set(d_implib_native ${d_implib}) | 372 set(d_implib_native ${d_implib}) |
368 ARGS /system /PAGESIZE:32 ${d_implib_native} ${cpp_lib_native} | 377 ARGS /system /PAGESIZE:32 ${d_implib_native} ${cpp_lib_native} |
369 DEPENDS "cpp_${package}" | 378 DEPENDS "cpp_${package}" |
370 COMMENT "Creating implib ${lib_name}" | 379 COMMENT "Creating implib ${lib_name}" |
371 ) | 380 ) |
372 install(FILES ${cpp_lib} COMPONENT qtd DESTINATION lib) | 381 install(FILES ${cpp_lib} COMPONENT qtd DESTINATION lib) |
373 else(CMAKE_HOST_WIN32 AND D_IS_MARS) | 382 else(CPP_SHARED) |
374 set(${package}_lib_param Qt${package_big}) ## Paths for QtD libs. Needed by examples. | 383 set(${package}_lib_param Qt${package_big}) ## Paths for QtD libs. Needed by examples. |
375 endif(CMAKE_HOST_WIN32 AND D_IS_MARS) | 384 endif(CPP_SHARED) |
376 add_d_target(${lib_name} NOT_DETECT_DEPENDS TYPE ${build_type} INCLUDES ${QTD_IMPORT_PATH} SOURCES ${d_sources} OBJECTS ${cpp_objs} ${d_implib} | 385 add_d_target(${lib_name} NOT_DETECT_DEPENDS TYPE ${build_type} INCLUDES ${QTD_IMPORT_PATH} SOURCES ${d_sources} OBJECTS ${cpp_objs} ${d_implib} |
377 OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib DEPENDS ${d_implib}) | 386 OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib DEPENDS ${d_implib}) |
378 install(FILES ${CMAKE_BINARY_DIR}/${lib} COMPONENT qtd DESTINATION lib) | 387 install(FILES ${CMAKE_BINARY_DIR}/${lib} COMPONENT qtd DESTINATION lib) |
379 | 388 |
380 ## Paths for QtD libs. Needed by examples. | 389 ## Paths for QtD libs. Needed by examples. |