Mercurial > projects > qtd
diff CMakeLists.txt @ 16:6faf3d3cb95e
CMake: implement install and package targets.
author | SokoL_SD |
---|---|
date | Thu, 14 May 2009 17:09:25 +0000 |
parents | 4faee409a98d |
children | 3925148ba2b6 |
line wrap: on
line diff
--- a/CMakeLists.txt Thu May 14 15:58:18 2009 +0000 +++ b/CMakeLists.txt Thu May 14 17:09:25 2009 +0000 @@ -32,6 +32,7 @@ string(REGEX MATCH "Digital Mars D Compiler v[0-9]\\.[0-9]+" dmd_version "${d_output}") if (dmd_version) set(D_IS_MARS true) + set(D_IS_DMD true) set(D_COMPILER_NAME "Digital Mars D Compiler") string(REGEX REPLACE "Digital Mars D Compiler v([0-9])\\.[0-9]+" "\\1" D_VERSION "${dmd_version}") string(REGEX REPLACE "Digital Mars D Compiler v[0-9]\\.([0-9]+)" "\\1" D_FRONTEND "${dmd_version}") @@ -41,6 +42,7 @@ exec_program(${DC} ARGS "--version" OUTPUT_VARIABLE d_output) string(REGEX MATCH "based on DMD v[0-9]\\.[0-9]+" ldc_version "${d_output}") set(D_IS_LLVM true) + set(D_IS_LDC true) if(ldc_version) set(D_IS_LLVM true) set(D_COMPILER_NAME "LLVM-based D Compiler") @@ -74,12 +76,11 @@ if (D_FRONTEND LESS "041") message(STATUS "Minimum required version of D compiler is 1.041 (or compiler based on this version)") endif(D_FRONTEND LESS "041") - set(D_TARGET d1-tango) - #set(D_FLAGS ${D_FLAGS} -I${CMAKE_SOURCE_DIR}/qtd/d1) + set(D_TARGET d1-tango) elseif(D_VERSION EQUAL "2") set(D_TARGET ) ## TODO: hm... I don`t known this parameter for D2 ^( - #set(D_FLAGS ${D_FLAGS} -I${CMAKE_SOURCE_DIR}/qtd/d2) endif(D_VERSION EQUAL "1") +set(D_FLAGS ${D_FLAGS} -I${CMAKE_SOURCE_DIR}/qt/d${D_VERSION}) # Debug and release flags. if (${CMAKE_BUILD_TYPE} MATCHES [dD][eE][bB][uU][gG]) @@ -92,6 +93,11 @@ #set(CMAKE_BUILD_TYPE Release) add_definitions(-UNO_DEBUG) set(D_FLAGS ${D_FLAGS} -O -release -inline) + if(D_IS_MARS) + set(D_FLAGS ${D_FLAGS} -inline) + elseif(D_IS_LLVM) + set(D_FLAGS ${D_FLAGS} -enable-inlining) + endif(D_IS_MARS) if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) set(D_FLAGS ${D_FLAGS} -L/subsystem:windows) endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) @@ -330,19 +336,33 @@ set(d_files) set(classes) set(d_generated_files) + set(d_version_files) set(link_example) include (${CMAKE_SOURCE_DIR}/build/${package}.txt) ## Loading package sources list. + foreach(d_source ${d_version_files}) + set(d_sources ${d_sources} ${CMAKE_SOURCE_DIR}/qt/d${D_VERSION}/qt/${d_source}.d) + if(NOT GENERATE_DI_FILES) + get_filename_component(path ${d_source}.d PATH) + get_filename_component(name ${d_source}.d NAME_WE) + install(FILES ${CMAKE_SOURCE_DIR}/qt/d${D_VERSION}/qt/${d_source}.d DESTINATION include/d/qtd/${path} RENAME ${name}.di) + endif(NOT GENERATE_DI_FILES) + endforeach(d_source) foreach(d_source ${d_files}) set(d_sources ${d_sources} ${CMAKE_SOURCE_DIR}/qt/${d_source}.d) + if(NOT GENERATE_DI_FILES) + get_filename_component(path ${d_source}.d PATH) + get_filename_component(name ${d_source}.d NAME_WE) + install(FILES ${CMAKE_SOURCE_DIR}/qt/${d_source}.d DESTINATION include/d/qtd/${path} RENAME ${name}.di) + endif(NOT GENERATE_DI_FILES) endforeach(d_source) foreach(d_source ${d_generated_files}) set(d_sources ${d_sources} ${CMAKE_BINARY_DIR}/qt/${d_source}.d) - get_filename_component(path ${d_source}.d PATH) - get_filename_component(path ${d_source}.d NAME_WE) if(NOT GENERATE_DI_FILES) - install(FILES ${d_source} DESTINATION include/d/qtd/${path} RENAME ${class}.di) + get_filename_component(path ${d_source}.d PATH) + get_filename_component(name ${d_source}.d NAME_WE) + install(FILES ${CMAKE_BINARY_DIR}/qt/${d_source}.d DESTINATION include/d/qtd/${path} RENAME ${name}.di) endif(NOT GENERATE_DI_FILES) endforeach(d_source) foreach (cpp_source ${cpp_files}) @@ -355,7 +375,7 @@ add_sources_for_generating(${CMAKE_BINARY_DIR}/cpp/qt_${package}/${class}_shell.cpp) add_sources_for_generating(${CMAKE_BINARY_DIR}/qt/${package}/${class}.d) if(NOT GENERATE_DI_FILES) - install(FILES ${d_source} DESTINATION include/d/qtd/${package} RENAME ${class}.di) + install(FILES ${CMAKE_BINARY_DIR}/qt/${package}/${class}.d DESTINATION include/d/qtd/${package} RENAME ${class}.di) endif(NOT GENERATE_DI_FILES) endforeach(class) @@ -407,7 +427,7 @@ COMMENT "Linking ${lib_name}" ) endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) - install(FILES ${lib} DESTINATION lib) + install(FILES ${CMAKE_BINARY_DIR}/${lib} DESTINATION lib) ## Dependences. add_dependencies(cpp_${package} dgen) @@ -438,7 +458,7 @@ endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows AND D_IS_MARS) if(GENERATE_DI_FILES) - set(regexp_str "(${CMAKE_BINARY_DIR}|${CMAKE_SOURCE_DIR})/([A-Za-z0-9\\-_\\\\/]+)[/]+([A-Za-z0-9\\-_\\\\]+).d") + set(regexp_str "(${CMAKE_SOURCE_DIR}/qt/d${D_VERSION}|${CMAKE_BINARY_DIR}|${CMAKE_SOURCE_DIR})/([A-Za-z0-9\\-_\\\\/]+)[/]+([A-Za-z0-9\\-_\\\\]+).d") foreach(source ${d_sources}) # find_file(source ${source} PATHS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} # ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}) @@ -479,4 +499,20 @@ if(BUILD_EXAMPLES) add_subdirectory(demos) add_subdirectory(examples) -endif(BUILD_EXAMPLES) \ No newline at end of file +endif(BUILD_EXAMPLES) + + +##-------------------------------------------- +## CPack. +##-------------------------------------------- +set(CPACK_PACKAGE_VERSION_PATCH 1) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "QtD is a D binding to the Qt") +set(CPACK_PACKAGE_VENDOR "QtD team") +set(CPACK_PACKAGE_CONTACT "e@mail.ru" ) +SET(CPACK_PACKAGE_VERSION "0.1") +#set(CPACK_PACKAGE_VERSION_PATCH "${RFS_VERSION_BUILD}") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "qtd ${CPACK_PACKAGE_VERSION}") +set(CPACK_PACKAGE_FILE_NAME "qtd-${CPACK_PACKAGE_VERSION}") +set(CPACK_SOURCE_PACKAGE_FILE_NAME "qtd-${CPACK_PACKAGE_VERSION}") +SET(CPACK_GENERATOR "TBZ2;DEB;RPM") +include(CPack) \ No newline at end of file