Mercurial > projects > qtd
changeset 89:8a4e85876ea8
CMake: improve of OS detection.
author | SokoL_SD |
---|---|
date | Tue, 26 May 2009 14:55:13 +0000 |
parents | 201684eb20ee |
children | ba63040afbf2 |
files | CMakeLists.txt |
diffstat | 1 files changed, 24 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/CMakeLists.txt Tue May 26 11:26:50 2009 +0000 +++ b/CMakeLists.txt Tue May 26 14:55:13 2009 +0000 @@ -120,19 +120,19 @@ elseif(D_IS_LLVM) set(D_FLAGS ${D_FLAGS} -enable-inlining) endif(D_IS_MARS) - if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + if(CMAKE_HOST_WIN32) set(D_FLAGS ${D_FLAGS} -L/subsystem:windows) - endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + endif(CMAKE_HOST_WIN32) endif(${CMAKE_BUILD_TYPE} MATCHES [rR][eE][lL][eE][aA][sS] ) set(D_FLAGS ${D_FLAGS} -I${CMAKE_BINARY_DIR} -I${CMAKE_SOURCE_DIR}) -if(D_IS_MARS AND ${CMAKE_SYSTEM_NAME} STREQUAL Windows) -else(D_IS_MARS AND ${CMAKE_SYSTEM_NAME} STREQUAL Windows) +if(D_IS_MARS AND CMAKE_HOST_WIN32) +else(D_IS_MARS AND CMAKE_HOST_WIN32) set(D_FLAGS ${D_FLAGS} -L-L${CMAKE_BINARY_DIR}/lib) -endif(D_IS_MARS AND ${CMAKE_SYSTEM_NAME} STREQUAL Windows) +endif(D_IS_MARS AND CMAKE_HOST_WIN32) # System specifc settings. -if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) +if(CMAKE_HOST_WIN32) set(implib implib) find_program(IMPLIB ${implib}) if (NOT IMPLIB) @@ -149,11 +149,11 @@ set(GEN_OPT ${GEN_OPT} --cpp_shared) add_definitions(-DCPP_SHARED) string(REGEX REPLACE ".dll([A-Za-z\\.0-9]+)" "\\1" CMAKE_IMPORT_LIBRARY_SUFFIX "${CMAKE_IMPORT_LIBRARY_SUFFIX}") -elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux) +elseif(CMAKE_HOST_UNIX) set(D_LIB_SUFFIX .a) set(D_LIB_PREFIX lib) set(D_OBJECT_SUFFIX .o) -endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) +endif(CMAKE_HOST_WIN32) set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ./) set(GEN_OPT ${GEN_OPT} --d-target=${D_TARGET}) @@ -174,13 +174,13 @@ ## -- "c:\file_path\file_name.cpp" ## Command "file(TO_NATIVE_PATH ...)" is wrong on Windows macro(MAKE_NATIVE_PATH pathname) - if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + if(CMAKE_HOST_WIN32) # An extra \\ escape is necessary to get a \ through CMake's processing. string(REPLACE "/" "\\" ${pathname} "${${pathname}}") # Enclose with UNESCAPED quotes. This means we need to escape our # quotes once here, i.e. with \" set(${pathname} \"${${pathname}}\") - endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + endif(CMAKE_HOST_WIN32) endmacro(MAKE_NATIVE_PATH) ## @@ -250,15 +250,15 @@ obj_path(d_obj_out) set(parameters ${D_FLAGS} -c ${ARGN} -of${${objects_list}}) set(parameters_list_file ${tmp_dir}/parameters) - if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + if(CMAKE_HOST_WIN32) file(REMOVE ${parameters_list_file}) foreach(arg ${parameters}) file(APPEND ${parameters_list_file} "${arg}\n") endforeach(arg) set(param @${parameters_list_file}) - elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux) + elseif(CMAKE_HOST_UNIX) set(param ${parameters}) - endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + endif(CMAKE_HOST_WIN32) add_custom_command(OUTPUT "${${objects_list}}" COMMAND "${DC}" ARGS ${param} @@ -363,9 +363,9 @@ ) add_custom_target(example_${name} ALL DEPENDS "${output}") ## TODO: Enable on windows too. - if(STRIP AND ${CMAKE_BUILD_TYPE} EQUAL "Release" AND ${CMAKE_SYSTEM_NAME} STREQUAL Linux) ## + if(STRIP AND ${CMAKE_BUILD_TYPE} EQUAL "Release" AND CMAKE_HOST_UNIX) ## add_custom_command(TARGET example_${name} POST_BUILD COMMAND "${STRIP}" ARGS "${output}") - endif(STRIP AND ${CMAKE_BUILD_TYPE} EQUAL "Release" AND ${CMAKE_SYSTEM_NAME} STREQUAL Linux) + endif(STRIP AND ${CMAKE_BUILD_TYPE} EQUAL "Release" AND CMAKE_HOST_UNIX) add_dependencies(example_${name} allpackages) endmacro(build_example sources) @@ -481,7 +481,7 @@ set(lib lib/${lib_name}) compile_d_files(${package}_dobjs objects ${d_sources}) set(d_objs ${d_objs} ${objects}) - if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + if(CMAKE_HOST_WIN32) set_property(TARGET cpp_${package} PROPERTY RUNTIME_OUTPUT_DIRECTORY lib) set_property(TARGET cpp_${package} PROPERTY ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles) foreach(req ${required}) @@ -523,7 +523,7 @@ COMMENT "Linking ${lib_name}" ) install(FILES ${cpp_lib} COMPONENT qtd DESTINATION lib) - else(${CMAKE_SYSTEM_NAME} STREQUAL Linux) + else(CMAKE_HOST_UNIX) set_property(TARGET cpp_${package} PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles) foreach(cpp_source ${cpp_sources}) set(cpp_source ${cpp_source}) @@ -537,7 +537,7 @@ DEPENDS ${d_objs} cpp_${package} COMMENT "Linking ${lib_name}" ) - endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + endif(CMAKE_HOST_WIN32) install(FILES ${CMAKE_BINARY_DIR}/${lib} COMPONENT qtd DESTINATION lib) ## Dependences. @@ -550,7 +550,7 @@ add_dependencies(allpackages ${package}) ## Paths for QtD libs. Needed by examples. - if(${CMAKE_SYSTEM_NAME} STREQUAL Windows AND D_IS_MARS) + if(CMAKE_HOST_WIN32 AND D_IS_MARS) set(libs_path ${CMAKE_BINARY_DIR}/lib/qtd${package}.lib) make_native_path(libs_path) set(${package}_lib_param -L+${libs_path}) @@ -560,12 +560,12 @@ set(link -L+${link}) set(${package}_lib_param ${${package}_lib_param} ${link}) endforeach(link ${link_example}) - else (${CMAKE_SYSTEM_NAME} STREQUAL Windows AND D_IS_MARS) + else (CMAKE_HOST_WIN32 AND D_IS_MARS) set(${package}_lib_param -L-lqtd${package} -L-lQt${package_big}) foreach(link ${link_example}) set(${package}_lib_param ${${package}_lib_param} ${link}) endforeach(link ${link_example}) - endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows AND D_IS_MARS) + endif(CMAKE_HOST_WIN32 AND D_IS_MARS) if(GENERATE_DI_FILES) regexseafestring(cbd_safe ${CMAKE_BINARY_DIR}) @@ -646,9 +646,9 @@ 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}") -if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) +if(CMAKE_HOST_WIN32) set(CPACK_GENERATOR "ZIP") -elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux) +elseif(CMAKE_HOST_UNIX) set(CPACK_GENERATOR "TBZ2;DEB;RPM") -endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) +endif(CMAKE_HOST_WIN32) include(CPack) \ No newline at end of file