1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00

Modules: Consistently use 2 space indentation

This commit is contained in:
Kitware Robot
2019-05-10 15:34:33 -04:00
committed by Brad King
parent e2d0aea2c7
commit 932dcce1e6
48 changed files with 1533 additions and 1536 deletions

View File

@@ -16,13 +16,13 @@ Adds the given ``<files>`` to the dependencies of file ``<source>``.
macro(ADD_FILE_DEPENDENCIES _file) macro(ADD_FILE_DEPENDENCIES _file)
get_source_file_property(_deps ${_file} OBJECT_DEPENDS) get_source_file_property(_deps ${_file} OBJECT_DEPENDS)
if (_deps) if (_deps)
set(_deps ${_deps} ${ARGN}) set(_deps ${_deps} ${ARGN})
else () else ()
set(_deps ${ARGN}) set(_deps ${ARGN})
endif () endif ()
set_source_files_properties(${_file} PROPERTIES OBJECT_DEPENDS "${_deps}") set_source_files_properties(${_file} PROPERTIES OBJECT_DEPENDS "${_deps}")
endmacro() endmacro()

View File

@@ -26,12 +26,12 @@ endif()
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: # if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
return() return()
endif() endif()
# check that the installed version has the same 32/64bit-ness as the one which is currently searching: # check that the installed version has the same 32/64bit-ness as the one which is currently searching:
if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "@CMAKE_SIZEOF_VOID_P@") if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "@CMAKE_SIZEOF_VOID_P@")
math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8") math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8")
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
set(PACKAGE_VERSION_UNSUITABLE TRUE) set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif() endif()

View File

@@ -41,7 +41,7 @@ endif()
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: # if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
return() return()
endif() endif()
# check that the installed version has the same 32/64bit-ness as the one which is currently searching: # check that the installed version has the same 32/64bit-ness as the one which is currently searching:

View File

@@ -40,7 +40,7 @@ endif()
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: # if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
return() return()
endif() endif()
# check that the installed version has the same 32/64bit-ness as the one which is currently searching: # check that the installed version has the same 32/64bit-ness as the one which is currently searching:

View File

@@ -44,7 +44,7 @@ endif()
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: # if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
return() return()
endif() endif()
# check that the installed version has the same 32/64bit-ness as the one which is currently searching: # check that the installed version has the same 32/64bit-ness as the one which is currently searching:

View File

@@ -17,15 +17,15 @@ changes in release notes.
CMakeDetermine(LANG)Compiler.cmake -> this should find the compiler for LANG and configure CMake(LANG)Compiler.cmake.in CMakeDetermine(LANG)Compiler.cmake -> this should find the compiler for LANG and configure CMake(LANG)Compiler.cmake.in
CMake(LANG)Compiler.cmake.in -> used by CMakeDetermine(LANG)Compiler.cmake CMake(LANG)Compiler.cmake.in -> used by CMakeDetermine(LANG)Compiler.cmake
This file is used to store compiler information and is copied down into try This file is used to store compiler information and is copied down into try
compile directories so that try compiles do not need to re-determine and test the LANG compile directories so that try compiles do not need to re-determine and test the LANG
CMakeTest(LANG)Compiler.cmake -> test the compiler and set: CMakeTest(LANG)Compiler.cmake -> test the compiler and set:
SET(CMAKE_(LANG)_COMPILER_WORKS 1 CACHE INTERNAL "") SET(CMAKE_(LANG)_COMPILER_WORKS 1 CACHE INTERNAL "")
CMake(LANG)Information.cmake -> set up rule variables for LANG : CMake(LANG)Information.cmake -> set up rule variables for LANG :
CMAKE_(LANG)_CREATE_SHARED_LIBRARY CMAKE_(LANG)_CREATE_SHARED_LIBRARY
CMAKE_(LANG)_CREATE_SHARED_MODULE CMAKE_(LANG)_CREATE_SHARED_MODULE
CMAKE_(LANG)_CREATE_STATIC_LIBRARY CMAKE_(LANG)_CREATE_STATIC_LIBRARY
CMAKE_(LANG)_COMPILE_OBJECT CMAKE_(LANG)_COMPILE_OBJECT
CMAKE_(LANG)_LINK_EXECUTABLE CMAKE_(LANG)_LINK_EXECUTABLE

View File

@@ -7,29 +7,29 @@
# any way between releases. # any way between releases.
macro (CHECK_COMPILER_FLAG_COMMON_PATTERNS _VAR) macro (CHECK_COMPILER_FLAG_COMMON_PATTERNS _VAR)
set(${_VAR} set(${_VAR}
FAIL_REGEX "[Uu]nrecogni[sz]ed .*option" # GNU, NAG FAIL_REGEX "[Uu]nrecogni[sz]ed .*option" # GNU, NAG
FAIL_REGEX "unknown .*option" # Clang FAIL_REGEX "unknown .*option" # Clang
FAIL_REGEX "optimization flag .* not supported" # Clang FAIL_REGEX "optimization flag .* not supported" # Clang
FAIL_REGEX "unknown argument ignored" # Clang (cl) FAIL_REGEX "unknown argument ignored" # Clang (cl)
FAIL_REGEX "ignoring unknown option" # MSVC, Intel FAIL_REGEX "ignoring unknown option" # MSVC, Intel
FAIL_REGEX "warning D9002" # MSVC, any lang FAIL_REGEX "warning D9002" # MSVC, any lang
FAIL_REGEX "option.*not supported" # Intel FAIL_REGEX "option.*not supported" # Intel
FAIL_REGEX "invalid argument .*option" # Intel FAIL_REGEX "invalid argument .*option" # Intel
FAIL_REGEX "ignoring option .*argument required" # Intel FAIL_REGEX "ignoring option .*argument required" # Intel
FAIL_REGEX "ignoring option .*argument is of wrong type" # Intel FAIL_REGEX "ignoring option .*argument is of wrong type" # Intel
FAIL_REGEX "[Uu]nknown option" # HP FAIL_REGEX "[Uu]nknown option" # HP
FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
FAIL_REGEX "command option .* is not recognized" # XL FAIL_REGEX "command option .* is not recognized" # XL
FAIL_REGEX "command option .* contains an incorrect subargument" # XL FAIL_REGEX "command option .* contains an incorrect subargument" # XL
FAIL_REGEX "Option .* is not recognized. Option will be ignored." # XL FAIL_REGEX "Option .* is not recognized. Option will be ignored." # XL
FAIL_REGEX "not supported in this configuration. ignored" # AIX FAIL_REGEX "not supported in this configuration. ignored" # AIX
FAIL_REGEX "File with unknown suffix passed to linker" # PGI FAIL_REGEX "File with unknown suffix passed to linker" # PGI
FAIL_REGEX "[Uu]nknown switch" # PGI FAIL_REGEX "[Uu]nknown switch" # PGI
FAIL_REGEX "WARNING: unknown flag:" # Open64 FAIL_REGEX "WARNING: unknown flag:" # Open64
FAIL_REGEX "Incorrect command line option:" # Borland FAIL_REGEX "Incorrect command line option:" # Borland
FAIL_REGEX "Warning: illegal option" # SunStudio 12 FAIL_REGEX "Warning: illegal option" # SunStudio 12
FAIL_REGEX "[Ww]arning: Invalid suboption" # Fujitsu FAIL_REGEX "[Ww]arning: Invalid suboption" # Fujitsu
FAIL_REGEX "An invalid option .* appears on the command line" # Cray FAIL_REGEX "An invalid option .* appears on the command line" # Cray
) )
endmacro () endmacro ()

View File

@@ -8,10 +8,10 @@ set(ASM_DIALECT "_MASM")
# if we are using the 64bit cl compiler, assume we also want the 64bit assembler # if we are using the 64bit cl compiler, assume we also want the 64bit assembler
if(";${CMAKE_VS_PLATFORM_NAME};${MSVC_C_ARCHITECTURE_ID};${MSVC_CXX_ARCHITECTURE_ID};" if(";${CMAKE_VS_PLATFORM_NAME};${MSVC_C_ARCHITECTURE_ID};${MSVC_CXX_ARCHITECTURE_ID};"
MATCHES ";(Win64|Itanium|x64|IA64);") MATCHES ";(Win64|Itanium|x64|IA64);")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ml64) set(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ml64)
else() else()
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ml) set(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ml)
endif() endif()
include(CMakeDetermineASMCompiler) include(CMakeDetermineASMCompiler)

View File

@@ -2,7 +2,7 @@
# file Copyright.txt or https://cmake.org/licensing for details. # file Copyright.txt or https://cmake.org/licensing for details.
if(NOT ${CMAKE_GENERATOR} MATCHES "Visual Studio ([^9]|[9][0-9])") if(NOT ${CMAKE_GENERATOR} MATCHES "Visual Studio ([^9]|[9][0-9])")
message(FATAL_ERROR message(FATAL_ERROR
"C# is currently only supported for Microsoft Visual Studio 2010 and later.") "C# is currently only supported for Microsoft Visual Studio 2010 and later.")
endif() endif()

View File

@@ -44,32 +44,32 @@ endif()
# [INTERNAL] # [INTERNAL]
# Please do not call this function directly # Please do not call this function directly
function(_DetermineVSServicePackFromCompiler _OUT_VAR _cl_version) function(_DetermineVSServicePackFromCompiler _OUT_VAR _cl_version)
if (${_cl_version} VERSION_EQUAL "14.00.50727.42") if (${_cl_version} VERSION_EQUAL "14.00.50727.42")
set(_version "vc80") set(_version "vc80")
elseif(${_cl_version} VERSION_EQUAL "14.00.50727.762") elseif(${_cl_version} VERSION_EQUAL "14.00.50727.762")
set(_version "vc80sp1") set(_version "vc80sp1")
elseif(${_cl_version} VERSION_EQUAL "15.00.21022.08") elseif(${_cl_version} VERSION_EQUAL "15.00.21022.08")
set(_version "vc90") set(_version "vc90")
elseif(${_cl_version} VERSION_EQUAL "15.00.30729.01") elseif(${_cl_version} VERSION_EQUAL "15.00.30729.01")
set(_version "vc90sp1") set(_version "vc90sp1")
elseif(${_cl_version} VERSION_EQUAL "16.00.30319.01") elseif(${_cl_version} VERSION_EQUAL "16.00.30319.01")
set(_version "vc100") set(_version "vc100")
elseif(${_cl_version} VERSION_EQUAL "16.00.40219.01") elseif(${_cl_version} VERSION_EQUAL "16.00.40219.01")
set(_version "vc100sp1") set(_version "vc100sp1")
elseif(${_cl_version} VERSION_EQUAL "17.00.50727.1") elseif(${_cl_version} VERSION_EQUAL "17.00.50727.1")
set(_version "vc110") set(_version "vc110")
elseif(${_cl_version} VERSION_EQUAL "17.00.51106.1") elseif(${_cl_version} VERSION_EQUAL "17.00.51106.1")
set(_version "vc110sp1") set(_version "vc110sp1")
elseif(${_cl_version} VERSION_EQUAL "17.00.60315.1") elseif(${_cl_version} VERSION_EQUAL "17.00.60315.1")
set(_version "vc110sp2") set(_version "vc110sp2")
elseif(${_cl_version} VERSION_EQUAL "17.00.60610.1") elseif(${_cl_version} VERSION_EQUAL "17.00.60610.1")
set(_version "vc110sp3") set(_version "vc110sp3")
elseif(${_cl_version} VERSION_EQUAL "17.00.61030") elseif(${_cl_version} VERSION_EQUAL "17.00.61030")
set(_version "vc110sp4") set(_version "vc110sp4")
else() else()
set(_version "") set(_version "")
endif() endif()
set(${_OUT_VAR} ${_version} PARENT_SCOPE) set(${_OUT_VAR} ${_version} PARENT_SCOPE)
endfunction() endfunction()

View File

@@ -42,108 +42,107 @@ ${CMAKE_CONFIGURATION_TYPES} if set, otherwise ${CMAKE_BUILD_TYPE}.
function(CMAKE_EXPAND_IMPORTED_TARGETS _RESULT ) function(CMAKE_EXPAND_IMPORTED_TARGETS _RESULT )
set(options ) set(options )
set(oneValueArgs CONFIGURATION ) set(oneValueArgs CONFIGURATION )
set(multiValueArgs LIBRARIES ) set(multiValueArgs LIBRARIES )
cmake_parse_arguments(CEIT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) cmake_parse_arguments(CEIT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(CEIT_UNPARSED_ARGUMENTS) if(CEIT_UNPARSED_ARGUMENTS)
message(FATAL_ERROR "Unknown keywords given to CMAKE_EXPAND_IMPORTED_TARGETS(): \"${CEIT_UNPARSED_ARGUMENTS}\"") message(FATAL_ERROR "Unknown keywords given to CMAKE_EXPAND_IMPORTED_TARGETS(): \"${CEIT_UNPARSED_ARGUMENTS}\"")
endif() endif()
if(NOT CEIT_CONFIGURATION) if(NOT CEIT_CONFIGURATION)
# Would be better to test GENERATOR_IS_MULTI_CONFIG global property, # Would be better to test GENERATOR_IS_MULTI_CONFIG global property,
# but the documented behavior specifically says we check # but the documented behavior specifically says we check
# CMAKE_CONFIGURATION_TYPES and fall back to CMAKE_BUILD_TYPE if no # CMAKE_CONFIGURATION_TYPES and fall back to CMAKE_BUILD_TYPE if no
# config types are defined. # config types are defined.
if(CMAKE_CONFIGURATION_TYPES) if(CMAKE_CONFIGURATION_TYPES)
list(GET CMAKE_CONFIGURATION_TYPES 0 CEIT_CONFIGURATION) list(GET CMAKE_CONFIGURATION_TYPES 0 CEIT_CONFIGURATION)
else() else()
set(CEIT_CONFIGURATION ${CMAKE_BUILD_TYPE}) set(CEIT_CONFIGURATION ${CMAKE_BUILD_TYPE})
endif() endif()
endif() endif()
# handle imported library targets # handle imported library targets
set(_CCSR_REQ_LIBS ${CEIT_LIBRARIES}) set(_CCSR_REQ_LIBS ${CEIT_LIBRARIES})
set(_CHECK_FOR_IMPORTED_TARGETS TRUE) set(_CHECK_FOR_IMPORTED_TARGETS TRUE)
set(_CCSR_LOOP_COUNTER 0) set(_CCSR_LOOP_COUNTER 0)
while(_CHECK_FOR_IMPORTED_TARGETS) while(_CHECK_FOR_IMPORTED_TARGETS)
math(EXPR _CCSR_LOOP_COUNTER "${_CCSR_LOOP_COUNTER} + 1 ") math(EXPR _CCSR_LOOP_COUNTER "${_CCSR_LOOP_COUNTER} + 1 ")
set(_CCSR_NEW_REQ_LIBS ) set(_CCSR_NEW_REQ_LIBS )
set(_CHECK_FOR_IMPORTED_TARGETS FALSE) set(_CHECK_FOR_IMPORTED_TARGETS FALSE)
foreach(_CURRENT_LIB ${_CCSR_REQ_LIBS}) foreach(_CURRENT_LIB ${_CCSR_REQ_LIBS})
if(TARGET "${_CURRENT_LIB}")
get_target_property(_importedConfigs "${_CURRENT_LIB}" IMPORTED_CONFIGURATIONS)
else()
set(_importedConfigs "")
endif()
if (_importedConfigs)
# message(STATUS "Detected imported target ${_CURRENT_LIB}")
# Ok, so this is an imported target.
# First we get the imported configurations.
# Then we get the location of the actual library on disk of the first configuration.
# then we'll get its link interface libraries property,
# iterate through it and replace all imported targets we find there
# with there actual location.
# guard against infinite loop: abort after 100 iterations ( 100 is arbitrary chosen)
if ("${_CCSR_LOOP_COUNTER}" LESS 100)
set(_CHECK_FOR_IMPORTED_TARGETS TRUE)
# else ()
# message(STATUS "********* aborting loop, counter : ${_CCSR_LOOP_COUNTER}")
endif ()
# if one of the imported configurations equals ${CMAKE_TRY_COMPILE_CONFIGURATION},
# use it, otherwise simply use the first one:
list(FIND _importedConfigs "${CEIT_CONFIGURATION}" _configIndexToUse)
if("${_configIndexToUse}" EQUAL -1)
set(_configIndexToUse 0)
endif()
list(GET _importedConfigs ${_configIndexToUse} _importedConfigToUse)
get_target_property(_importedLocation "${_CURRENT_LIB}" IMPORTED_LOCATION_${_importedConfigToUse})
get_target_property(_linkInterfaceLibs "${_CURRENT_LIB}" IMPORTED_LINK_INTERFACE_LIBRARIES_${_importedConfigToUse} )
list(APPEND _CCSR_NEW_REQ_LIBS "${_importedLocation}")
# message(STATUS "Appending lib ${_CURRENT_LIB} as ${_importedLocation}")
if(_linkInterfaceLibs)
foreach(_currentLinkInterfaceLib ${_linkInterfaceLibs})
# message(STATUS "Appending link interface lib ${_currentLinkInterfaceLib}")
if(_currentLinkInterfaceLib)
list(APPEND _CCSR_NEW_REQ_LIBS "${_currentLinkInterfaceLib}" )
endif()
endforeach()
endif()
else()
# "Normal" libraries are just used as they are.
list(APPEND _CCSR_NEW_REQ_LIBS "${_CURRENT_LIB}" )
# message(STATUS "Appending lib directly: ${_CURRENT_LIB}")
endif()
endforeach()
set(_CCSR_REQ_LIBS ${_CCSR_NEW_REQ_LIBS} )
endwhile()
# Finally we iterate once more over all libraries. This loop only removes
# all remaining imported target names (there shouldn't be any left anyway).
set(_CCSR_NEW_REQ_LIBS )
foreach(_CURRENT_LIB ${_CCSR_REQ_LIBS})
if(TARGET "${_CURRENT_LIB}") if(TARGET "${_CURRENT_LIB}")
get_target_property(_importedConfigs "${_CURRENT_LIB}" IMPORTED_CONFIGURATIONS) get_target_property(_importedConfigs "${_CURRENT_LIB}" IMPORTED_CONFIGURATIONS)
else() else()
set(_importedConfigs "") set(_importedConfigs "")
endif() endif()
if (NOT _importedConfigs) if (_importedConfigs)
list(APPEND _CCSR_NEW_REQ_LIBS "${_CURRENT_LIB}" ) # message(STATUS "Detected imported target ${_CURRENT_LIB}")
# message(STATUS "final: appending ${_CURRENT_LIB}") # Ok, so this is an imported target.
else () # First we get the imported configurations.
# message(STATUS "final: skipping ${_CURRENT_LIB}") # Then we get the location of the actual library on disk of the first configuration.
endif () # then we'll get its link interface libraries property,
endforeach() # iterate through it and replace all imported targets we find there
# message(STATUS "setting -${_RESULT}- to -${_CCSR_NEW_REQ_LIBS}-") # with there actual location.
set(${_RESULT} "${_CCSR_NEW_REQ_LIBS}" PARENT_SCOPE)
# guard against infinite loop: abort after 100 iterations ( 100 is arbitrary chosen)
if ("${_CCSR_LOOP_COUNTER}" LESS 100)
set(_CHECK_FOR_IMPORTED_TARGETS TRUE)
# else ()
# message(STATUS "********* aborting loop, counter : ${_CCSR_LOOP_COUNTER}")
endif ()
# if one of the imported configurations equals ${CMAKE_TRY_COMPILE_CONFIGURATION},
# use it, otherwise simply use the first one:
list(FIND _importedConfigs "${CEIT_CONFIGURATION}" _configIndexToUse)
if("${_configIndexToUse}" EQUAL -1)
set(_configIndexToUse 0)
endif()
list(GET _importedConfigs ${_configIndexToUse} _importedConfigToUse)
get_target_property(_importedLocation "${_CURRENT_LIB}" IMPORTED_LOCATION_${_importedConfigToUse})
get_target_property(_linkInterfaceLibs "${_CURRENT_LIB}" IMPORTED_LINK_INTERFACE_LIBRARIES_${_importedConfigToUse} )
list(APPEND _CCSR_NEW_REQ_LIBS "${_importedLocation}")
# message(STATUS "Appending lib ${_CURRENT_LIB} as ${_importedLocation}")
if(_linkInterfaceLibs)
foreach(_currentLinkInterfaceLib ${_linkInterfaceLibs})
# message(STATUS "Appending link interface lib ${_currentLinkInterfaceLib}")
if(_currentLinkInterfaceLib)
list(APPEND _CCSR_NEW_REQ_LIBS "${_currentLinkInterfaceLib}" )
endif()
endforeach()
endif()
else()
# "Normal" libraries are just used as they are.
list(APPEND _CCSR_NEW_REQ_LIBS "${_CURRENT_LIB}" )
# message(STATUS "Appending lib directly: ${_CURRENT_LIB}")
endif()
endforeach()
set(_CCSR_REQ_LIBS ${_CCSR_NEW_REQ_LIBS} )
endwhile()
# Finally we iterate once more over all libraries. This loop only removes
# all remaining imported target names (there shouldn't be any left anyway).
set(_CCSR_NEW_REQ_LIBS )
foreach(_CURRENT_LIB ${_CCSR_REQ_LIBS})
if(TARGET "${_CURRENT_LIB}")
get_target_property(_importedConfigs "${_CURRENT_LIB}" IMPORTED_CONFIGURATIONS)
else()
set(_importedConfigs "")
endif()
if (NOT _importedConfigs)
list(APPEND _CCSR_NEW_REQ_LIBS "${_CURRENT_LIB}" )
# message(STATUS "final: appending ${_CURRENT_LIB}")
# else ()
# message(STATUS "final: skipping ${_CURRENT_LIB}")
endif ()
endforeach()
# message(STATUS "setting -${_RESULT}- to -${_CCSR_NEW_REQ_LIBS}-")
set(${_RESULT} "${_CCSR_NEW_REQ_LIBS}" PARENT_SCOPE)
endfunction() endfunction()

View File

@@ -8,7 +8,7 @@
find_program(CMAKE_CODEBLOCKS_EXECUTABLE NAMES codeblocks DOC "The CodeBlocks executable") find_program(CMAKE_CODEBLOCKS_EXECUTABLE NAMES codeblocks DOC "The CodeBlocks executable")
if(CMAKE_CODEBLOCKS_EXECUTABLE) if(CMAKE_CODEBLOCKS_EXECUTABLE)
set(CMAKE_OPEN_PROJECT_COMMAND "${CMAKE_CODEBLOCKS_EXECUTABLE} <PROJECT_FILE>" ) set(CMAKE_OPEN_PROJECT_COMMAND "${CMAKE_CODEBLOCKS_EXECUTABLE} <PROJECT_FILE>" )
endif() endif()
# Determine builtin macros and include dirs: # Determine builtin macros and include dirs:

View File

@@ -19,5 +19,5 @@ find_program(CMAKE_SUBLIMETEXT_EXECUTABLE
DOC "The Sublime Text executable") DOC "The Sublime Text executable")
if(CMAKE_SUBLIMETEXT_EXECUTABLE) if(CMAKE_SUBLIMETEXT_EXECUTABLE)
set(CMAKE_OPEN_PROJECT_COMMAND "${CMAKE_SUBLIMETEXT_EXECUTABLE} --project <PROJECT_FILE>" ) set(CMAKE_OPEN_PROJECT_COMMAND "${CMAKE_SUBLIMETEXT_EXECUTABLE} --project <PROJECT_FILE>" )
endif() endif()

View File

@@ -16,8 +16,8 @@ endif()
if(CMAKE_USER_MAKE_RULES_OVERRIDE_Java) if(CMAKE_USER_MAKE_RULES_OVERRIDE_Java)
# Save the full path of the file so try_compile can use it. # Save the full path of the file so try_compile can use it.
include(${CMAKE_USER_MAKE_RULES_OVERRIDE_Java} RESULT_VARIABLE _override) include(${CMAKE_USER_MAKE_RULES_OVERRIDE_Java} RESULT_VARIABLE _override)
set(CMAKE_USER_MAKE_RULES_OVERRIDE_Java "${_override}") set(CMAKE_USER_MAKE_RULES_OVERRIDE_Java "${_override}")
endif() endif()
# this is a place holder if java needed flags for javac they would go here. # this is a place holder if java needed flags for javac they would go here.

View File

@@ -42,14 +42,14 @@ Gives::
#]=======================================================================] #]=======================================================================]
function(cmake_print_variables) function(cmake_print_variables)
set(msg "") set(msg "")
foreach(var ${ARGN}) foreach(var ${ARGN})
if(msg) if(msg)
string(APPEND msg " ; ") string(APPEND msg " ; ")
endif() endif()
string(APPEND msg "${var}=\"${${var}}\"") string(APPEND msg "${var}=\"${${var}}\"")
endforeach() endforeach()
message(STATUS "${msg}") message(STATUS "${msg}")
endfunction() endfunction()

View File

@@ -40,52 +40,52 @@ Usage:
macro(CMAKE_RESET_CHECK_STATE) macro(CMAKE_RESET_CHECK_STATE)
set(CMAKE_EXTRA_INCLUDE_FILES) set(CMAKE_EXTRA_INCLUDE_FILES)
set(CMAKE_REQUIRED_INCLUDES) set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_DEFINITIONS) set(CMAKE_REQUIRED_DEFINITIONS)
set(CMAKE_REQUIRED_LINK_OPTIONS) set(CMAKE_REQUIRED_LINK_OPTIONS)
set(CMAKE_REQUIRED_LIBRARIES) set(CMAKE_REQUIRED_LIBRARIES)
set(CMAKE_REQUIRED_FLAGS) set(CMAKE_REQUIRED_FLAGS)
set(CMAKE_REQUIRED_QUIET) set(CMAKE_REQUIRED_QUIET)
endmacro() endmacro()
macro(CMAKE_PUSH_CHECK_STATE) macro(CMAKE_PUSH_CHECK_STATE)
if(NOT DEFINED _CMAKE_PUSH_CHECK_STATE_COUNTER) if(NOT DEFINED _CMAKE_PUSH_CHECK_STATE_COUNTER)
set(_CMAKE_PUSH_CHECK_STATE_COUNTER 0) set(_CMAKE_PUSH_CHECK_STATE_COUNTER 0)
endif() endif()
math(EXPR _CMAKE_PUSH_CHECK_STATE_COUNTER "${_CMAKE_PUSH_CHECK_STATE_COUNTER}+1") math(EXPR _CMAKE_PUSH_CHECK_STATE_COUNTER "${_CMAKE_PUSH_CHECK_STATE_COUNTER}+1")
set(_CMAKE_EXTRA_INCLUDE_FILES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_EXTRA_INCLUDE_FILES}) set(_CMAKE_EXTRA_INCLUDE_FILES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_EXTRA_INCLUDE_FILES})
set(_CMAKE_REQUIRED_INCLUDES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_INCLUDES}) set(_CMAKE_REQUIRED_INCLUDES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_INCLUDES})
set(_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_DEFINITIONS}) set(_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_DEFINITIONS})
set(_CMAKE_REQUIRED_LINK_OPTIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_LINK_OPTIONS}) set(_CMAKE_REQUIRED_LINK_OPTIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_LINK_OPTIONS})
set(_CMAKE_REQUIRED_LIBRARIES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_LIBRARIES}) set(_CMAKE_REQUIRED_LIBRARIES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_LIBRARIES})
set(_CMAKE_REQUIRED_FLAGS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_FLAGS}) set(_CMAKE_REQUIRED_FLAGS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_FLAGS})
set(_CMAKE_REQUIRED_QUIET_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_QUIET}) set(_CMAKE_REQUIRED_QUIET_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_QUIET})
if (${ARGC} GREATER 0 AND "${ARGV0}" STREQUAL "RESET") if (${ARGC} GREATER 0 AND "${ARGV0}" STREQUAL "RESET")
cmake_reset_check_state() cmake_reset_check_state()
endif() endif()
endmacro() endmacro()
macro(CMAKE_POP_CHECK_STATE) macro(CMAKE_POP_CHECK_STATE)
# don't pop more than we pushed # don't pop more than we pushed
if("${_CMAKE_PUSH_CHECK_STATE_COUNTER}" GREATER "0") if("${_CMAKE_PUSH_CHECK_STATE_COUNTER}" GREATER "0")
set(CMAKE_EXTRA_INCLUDE_FILES ${_CMAKE_EXTRA_INCLUDE_FILES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_EXTRA_INCLUDE_FILES ${_CMAKE_EXTRA_INCLUDE_FILES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_INCLUDES ${_CMAKE_REQUIRED_INCLUDES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_REQUIRED_INCLUDES ${_CMAKE_REQUIRED_INCLUDES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_DEFINITIONS ${_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_REQUIRED_DEFINITIONS ${_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_LINK_OPTIONS ${_CMAKE_REQUIRED_LINK_OPTIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_REQUIRED_LINK_OPTIONS ${_CMAKE_REQUIRED_LINK_OPTIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_FLAGS ${_CMAKE_REQUIRED_FLAGS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_REQUIRED_FLAGS ${_CMAKE_REQUIRED_FLAGS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
set(CMAKE_REQUIRED_QUIET ${_CMAKE_REQUIRED_QUIET_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_REQUIRED_QUIET ${_CMAKE_REQUIRED_QUIET_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}})
math(EXPR _CMAKE_PUSH_CHECK_STATE_COUNTER "${_CMAKE_PUSH_CHECK_STATE_COUNTER}-1") math(EXPR _CMAKE_PUSH_CHECK_STATE_COUNTER "${_CMAKE_PUSH_CHECK_STATE_COUNTER}-1")
endif() endif()
endmacro() endmacro()

View File

@@ -34,7 +34,7 @@ if(NOT _INCLUDED_SYSTEM_INFO_FILE)
${CMAKE_BINARY_DIR}/CopyOfCMakeCache.txt COPYONLY) ${CMAKE_BINARY_DIR}/CopyOfCMakeCache.txt COPYONLY)
message("Your CMakeCache.txt file was copied to CopyOfCMakeCache.txt. " message("Your CMakeCache.txt file was copied to CopyOfCMakeCache.txt. "
"Please send that file to cmake@www.cmake.org.") "Please send that file to cmake@www.cmake.org.")
endif() endif()
endif() endif()
# optionally include a file which can do extra-generator specific things, e.g. # optionally include a file which can do extra-generator specific things, e.g.

View File

@@ -37,27 +37,27 @@ include(CheckCSourceCompiles)
include(CMakeCheckCompilerFlagCommonPatterns) include(CMakeCheckCompilerFlagCommonPatterns)
macro (CHECK_C_COMPILER_FLAG _FLAG _RESULT) macro (CHECK_C_COMPILER_FLAG _FLAG _RESULT)
set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}") set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}") set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
# Normalize locale during test compilation. # Normalize locale during test compilation.
set(_CheckCCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG) set(_CheckCCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
foreach(v ${_CheckCCompilerFlag_LOCALE_VARS}) foreach(v ${_CheckCCompilerFlag_LOCALE_VARS})
set(_CheckCCompilerFlag_SAVED_${v} "$ENV{${v}}") set(_CheckCCompilerFlag_SAVED_${v} "$ENV{${v}}")
set(ENV{${v}} C) set(ENV{${v}} C)
endforeach() endforeach()
CHECK_COMPILER_FLAG_COMMON_PATTERNS(_CheckCCompilerFlag_COMMON_PATTERNS) CHECK_COMPILER_FLAG_COMMON_PATTERNS(_CheckCCompilerFlag_COMMON_PATTERNS)
CHECK_C_SOURCE_COMPILES("int main(void) { return 0; }" ${_RESULT} CHECK_C_SOURCE_COMPILES("int main(void) { return 0; }" ${_RESULT}
# Some compilers do not fail with a bad flag # Some compilers do not fail with a bad flag
FAIL_REGEX "command line option .* is valid for .* but not for C" # GNU FAIL_REGEX "command line option .* is valid for .* but not for C" # GNU
${_CheckCCompilerFlag_COMMON_PATTERNS} ${_CheckCCompilerFlag_COMMON_PATTERNS}
) )
foreach(v ${_CheckCCompilerFlag_LOCALE_VARS}) foreach(v ${_CheckCCompilerFlag_LOCALE_VARS})
set(ENV{${v}} ${_CheckCCompilerFlag_SAVED_${v}}) set(ENV{${v}} ${_CheckCCompilerFlag_SAVED_${v}})
unset(_CheckCCompilerFlag_SAVED_${v}) unset(_CheckCCompilerFlag_SAVED_${v})
endforeach() endforeach()
unset(_CheckCCompilerFlag_LOCALE_VARS) unset(_CheckCCompilerFlag_LOCALE_VARS)
unset(_CheckCCompilerFlag_COMMON_PATTERNS) unset(_CheckCCompilerFlag_COMMON_PATTERNS)
set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}") set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
endmacro () endmacro ()

View File

@@ -37,27 +37,27 @@ include(CheckCXXSourceCompiles)
include(CMakeCheckCompilerFlagCommonPatterns) include(CMakeCheckCompilerFlagCommonPatterns)
macro (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT) macro (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}") set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}") set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
# Normalize locale during test compilation. # Normalize locale during test compilation.
set(_CheckCXXCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG) set(_CheckCXXCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
foreach(v ${_CheckCXXCompilerFlag_LOCALE_VARS}) foreach(v ${_CheckCXXCompilerFlag_LOCALE_VARS})
set(_CheckCXXCompilerFlag_SAVED_${v} "$ENV{${v}}") set(_CheckCXXCompilerFlag_SAVED_${v} "$ENV{${v}}")
set(ENV{${v}} C) set(ENV{${v}} C)
endforeach() endforeach()
CHECK_COMPILER_FLAG_COMMON_PATTERNS(_CheckCXXCompilerFlag_COMMON_PATTERNS) CHECK_COMPILER_FLAG_COMMON_PATTERNS(_CheckCXXCompilerFlag_COMMON_PATTERNS)
CHECK_CXX_SOURCE_COMPILES("int main() { return 0; }" ${_RESULT} CHECK_CXX_SOURCE_COMPILES("int main() { return 0; }" ${_RESULT}
# Some compilers do not fail with a bad flag # Some compilers do not fail with a bad flag
FAIL_REGEX "command line option .* is valid for .* but not for C\\\\+\\\\+" # GNU FAIL_REGEX "command line option .* is valid for .* but not for C\\\\+\\\\+" # GNU
${_CheckCXXCompilerFlag_COMMON_PATTERNS} ${_CheckCXXCompilerFlag_COMMON_PATTERNS}
) )
foreach(v ${_CheckCXXCompilerFlag_LOCALE_VARS}) foreach(v ${_CheckCXXCompilerFlag_LOCALE_VARS})
set(ENV{${v}} ${_CheckCXXCompilerFlag_SAVED_${v}}) set(ENV{${v}} ${_CheckCXXCompilerFlag_SAVED_${v}})
unset(_CheckCXXCompilerFlag_SAVED_${v}) unset(_CheckCXXCompilerFlag_SAVED_${v})
endforeach() endforeach()
unset(_CheckCXXCompilerFlag_LOCALE_VARS) unset(_CheckCXXCompilerFlag_LOCALE_VARS)
unset(_CheckCXXCompilerFlag_COMMON_PATTERNS) unset(_CheckCXXCompilerFlag_COMMON_PATTERNS)
set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}") set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
endmacro () endmacro ()

View File

@@ -50,33 +50,33 @@ include(CheckCSourceCompiles)
include(CheckCXXSourceCompiles) include(CheckCXXSourceCompiles)
macro (CHECK_STRUCT_HAS_MEMBER _STRUCT _MEMBER _HEADER _RESULT) macro (CHECK_STRUCT_HAS_MEMBER _STRUCT _MEMBER _HEADER _RESULT)
set(_INCLUDE_FILES) set(_INCLUDE_FILES)
foreach (it ${_HEADER}) foreach (it ${_HEADER})
string(APPEND _INCLUDE_FILES "#include <${it}>\n") string(APPEND _INCLUDE_FILES "#include <${it}>\n")
endforeach () endforeach ()
if("x${ARGN}" STREQUAL "x") if("x${ARGN}" STREQUAL "x")
set(_lang C) set(_lang C)
elseif("x${ARGN}" MATCHES "^xLANGUAGE;([a-zA-Z]+)$") elseif("x${ARGN}" MATCHES "^xLANGUAGE;([a-zA-Z]+)$")
set(_lang "${CMAKE_MATCH_1}") set(_lang "${CMAKE_MATCH_1}")
else() else()
message(FATAL_ERROR "Unknown arguments:\n ${ARGN}\n") message(FATAL_ERROR "Unknown arguments:\n ${ARGN}\n")
endif() endif()
set(_CHECK_STRUCT_MEMBER_SOURCE_CODE " set(_CHECK_STRUCT_MEMBER_SOURCE_CODE "
${_INCLUDE_FILES} ${_INCLUDE_FILES}
int main() int main()
{ {
(void)sizeof(((${_STRUCT} *)0)->${_MEMBER}); (void)sizeof(((${_STRUCT} *)0)->${_MEMBER});
return 0; return 0;
} }
") ")
if("${_lang}" STREQUAL "C") if("${_lang}" STREQUAL "C")
CHECK_C_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT}) CHECK_C_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT})
elseif("${_lang}" STREQUAL "CXX") elseif("${_lang}" STREQUAL "CXX")
CHECK_CXX_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT}) CHECK_CXX_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT})
else() else()
message(FATAL_ERROR "Unknown language:\n ${_lang}\nSupported languages: C, CXX.\n") message(FATAL_ERROR "Unknown language:\n ${_lang}\nSupported languages: C, CXX.\n")
endif() endif()
endmacro () endmacro ()

View File

@@ -65,40 +65,40 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(BZip2
VERSION_VAR BZIP2_VERSION_STRING) VERSION_VAR BZIP2_VERSION_STRING)
if (BZIP2_FOUND) if (BZIP2_FOUND)
set(BZIP2_INCLUDE_DIRS ${BZIP2_INCLUDE_DIR}) set(BZIP2_INCLUDE_DIRS ${BZIP2_INCLUDE_DIR})
include(${CMAKE_CURRENT_LIST_DIR}/CheckSymbolExists.cmake) include(${CMAKE_CURRENT_LIST_DIR}/CheckSymbolExists.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake) include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake)
cmake_push_check_state() cmake_push_check_state()
set(CMAKE_REQUIRED_QUIET ${BZip2_FIND_QUIETLY}) set(CMAKE_REQUIRED_QUIET ${BZip2_FIND_QUIETLY})
set(CMAKE_REQUIRED_INCLUDES ${BZIP2_INCLUDE_DIR}) set(CMAKE_REQUIRED_INCLUDES ${BZIP2_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${BZIP2_LIBRARIES}) set(CMAKE_REQUIRED_LIBRARIES ${BZIP2_LIBRARIES})
CHECK_SYMBOL_EXISTS(BZ2_bzCompressInit "bzlib.h" BZIP2_NEED_PREFIX) CHECK_SYMBOL_EXISTS(BZ2_bzCompressInit "bzlib.h" BZIP2_NEED_PREFIX)
cmake_pop_check_state() cmake_pop_check_state()
if(NOT TARGET BZip2::BZip2) if(NOT TARGET BZip2::BZip2)
add_library(BZip2::BZip2 UNKNOWN IMPORTED) add_library(BZip2::BZip2 UNKNOWN IMPORTED)
set_target_properties(BZip2::BZip2 PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${BZIP2_INCLUDE_DIRS}")
if(BZIP2_LIBRARY_RELEASE)
set_property(TARGET BZip2::BZip2 APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(BZip2::BZip2 PROPERTIES set_target_properties(BZip2::BZip2 PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${BZIP2_INCLUDE_DIRS}") IMPORTED_LOCATION_RELEASE "${BZIP2_LIBRARY_RELEASE}")
if(BZIP2_LIBRARY_RELEASE)
set_property(TARGET BZip2::BZip2 APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(BZip2::BZip2 PROPERTIES
IMPORTED_LOCATION_RELEASE "${BZIP2_LIBRARY_RELEASE}")
endif()
if(BZIP2_LIBRARY_DEBUG)
set_property(TARGET BZip2::BZip2 APPEND PROPERTY
IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(BZip2::BZip2 PROPERTIES
IMPORTED_LOCATION_DEBUG "${BZIP2_LIBRARY_DEBUG}")
endif()
if(NOT BZIP2_LIBRARY_RELEASE AND NOT BZIP2_LIBRARY_DEBUG)
set_property(TARGET BZip2::BZip2 APPEND PROPERTY
IMPORTED_LOCATION "${BZIP2_LIBRARY}")
endif()
endif() endif()
if(BZIP2_LIBRARY_DEBUG)
set_property(TARGET BZip2::BZip2 APPEND PROPERTY
IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(BZip2::BZip2 PROPERTIES
IMPORTED_LOCATION_DEBUG "${BZIP2_LIBRARY_DEBUG}")
endif()
if(NOT BZIP2_LIBRARY_RELEASE AND NOT BZIP2_LIBRARY_DEBUG)
set_property(TARGET BZip2::BZip2 APPEND PROPERTY
IMPORTED_LOCATION "${BZIP2_LIBRARY}")
endif()
endif()
endif () endif ()
mark_as_advanced(BZIP2_INCLUDE_DIR) mark_as_advanced(BZIP2_INCLUDE_DIR)

View File

@@ -52,12 +52,12 @@ macro(_FIND_BULLET_LIBRARY _var)
endmacro() endmacro()
macro(_BULLET_APPEND_LIBRARIES _list _release) macro(_BULLET_APPEND_LIBRARIES _list _release)
set(_debug ${_release}_DEBUG) set(_debug ${_release}_DEBUG)
if(${_debug}) if(${_debug})
set(${_list} ${${_list}} optimized ${${_release}} debug ${${_debug}}) set(${_list} ${${_list}} optimized ${${_release}} debug ${${_debug}})
else() else()
set(${_list} ${${_list}} ${${_release}}) set(${_list} ${${_list}} ${${_release}})
endif() endif()
endmacro() endmacro()
find_path(BULLET_INCLUDE_DIR NAMES btBulletCollisionCommon.h find_path(BULLET_INCLUDE_DIR NAMES btBulletCollisionCommon.h

View File

@@ -538,7 +538,7 @@ if(DEFINED ENV{CUDAHOSTCXX})
elseif(CMAKE_GENERATOR MATCHES "Visual Studio") elseif(CMAKE_GENERATOR MATCHES "Visual Studio")
set(_CUDA_MSVC_HOST_COMPILER "$(VCInstallDir)Tools/MSVC/$(VCToolsVersion)/bin/Host$(Platform)/$(PlatformTarget)") set(_CUDA_MSVC_HOST_COMPILER "$(VCInstallDir)Tools/MSVC/$(VCToolsVersion)/bin/Host$(Platform)/$(PlatformTarget)")
if(MSVC_VERSION LESS 1910) if(MSVC_VERSION LESS 1910)
set(_CUDA_MSVC_HOST_COMPILER "$(VCInstallDir)bin") set(_CUDA_MSVC_HOST_COMPILER "$(VCInstallDir)bin")
endif() endif()
set(CUDA_HOST_COMPILER "${_CUDA_MSVC_HOST_COMPILER}" CACHE FILEPATH "Host side compiler used by NVCC") set(CUDA_HOST_COMPILER "${_CUDA_MSVC_HOST_COMPILER}" CACHE FILEPATH "Host side compiler used by NVCC")

View File

@@ -141,7 +141,7 @@ if(CURSES_USE_NCURSES)
NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h
HINTS "${_cursesParentDir}/include" HINTS "${_cursesParentDir}/include"
) )
endif() endif()
# Previous versions of FindCurses provided these values. # Previous versions of FindCurses provided these values.
if(NOT DEFINED CURSES_LIBRARY) if(NOT DEFINED CURSES_LIBRARY)

View File

@@ -194,7 +194,7 @@ endmacro()
# main() # main()
#============================================================= #=============================================================
if(NOT DEFINED CXXTEST_TESTGEN_ARGS) if(NOT DEFINED CXXTEST_TESTGEN_ARGS)
set(CXXTEST_TESTGEN_ARGS --error-printer) set(CXXTEST_TESTGEN_ARGS --error-printer)
endif() endif()
find_package(Python QUIET) find_package(Python QUIET)
@@ -208,40 +208,40 @@ find_program(CXXTEST_PERL_TESTGEN_EXECUTABLE cxxtestgen.pl
PATHS ${CXXTEST_INCLUDE_DIR}) PATHS ${CXXTEST_INCLUDE_DIR})
if(PYTHON_FOUND OR PERL_FOUND) if(PYTHON_FOUND OR PERL_FOUND)
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
if(PYTHON_FOUND AND (CXXTEST_USE_PYTHON OR NOT PERL_FOUND OR NOT DEFINED CXXTEST_USE_PYTHON)) if(PYTHON_FOUND AND (CXXTEST_USE_PYTHON OR NOT PERL_FOUND OR NOT DEFINED CXXTEST_USE_PYTHON))
set(CXXTEST_TESTGEN_EXECUTABLE ${CXXTEST_PYTHON_TESTGEN_EXECUTABLE}) set(CXXTEST_TESTGEN_EXECUTABLE ${CXXTEST_PYTHON_TESTGEN_EXECUTABLE})
execute_process(COMMAND ${CXXTEST_PYTHON_TESTGEN_EXECUTABLE} --version execute_process(COMMAND ${CXXTEST_PYTHON_TESTGEN_EXECUTABLE} --version
OUTPUT_VARIABLE _CXXTEST_OUT ERROR_VARIABLE _CXXTEST_OUT RESULT_VARIABLE _CXXTEST_RESULT) OUTPUT_VARIABLE _CXXTEST_OUT ERROR_VARIABLE _CXXTEST_OUT RESULT_VARIABLE _CXXTEST_RESULT)
if(_CXXTEST_RESULT EQUAL 0) if(_CXXTEST_RESULT EQUAL 0)
set(CXXTEST_TESTGEN_INTERPRETER "") set(CXXTEST_TESTGEN_INTERPRETER "")
else() else()
set(CXXTEST_TESTGEN_INTERPRETER ${Python_EXECUTABLE}) set(CXXTEST_TESTGEN_INTERPRETER ${Python_EXECUTABLE})
endif() endif()
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CxxTest DEFAULT_MSG FIND_PACKAGE_HANDLE_STANDARD_ARGS(CxxTest DEFAULT_MSG
CXXTEST_INCLUDE_DIR CXXTEST_PYTHON_TESTGEN_EXECUTABLE) CXXTEST_INCLUDE_DIR CXXTEST_PYTHON_TESTGEN_EXECUTABLE)
elseif(PERL_FOUND) elseif(PERL_FOUND)
set(CXXTEST_TESTGEN_EXECUTABLE ${CXXTEST_PERL_TESTGEN_EXECUTABLE}) set(CXXTEST_TESTGEN_EXECUTABLE ${CXXTEST_PERL_TESTGEN_EXECUTABLE})
set(CXXTEST_TESTGEN_INTERPRETER ${PERL_EXECUTABLE}) set(CXXTEST_TESTGEN_INTERPRETER ${PERL_EXECUTABLE})
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CxxTest DEFAULT_MSG FIND_PACKAGE_HANDLE_STANDARD_ARGS(CxxTest DEFAULT_MSG
CXXTEST_INCLUDE_DIR CXXTEST_PERL_TESTGEN_EXECUTABLE) CXXTEST_INCLUDE_DIR CXXTEST_PERL_TESTGEN_EXECUTABLE)
endif() endif()
if(CXXTEST_FOUND) if(CXXTEST_FOUND)
set(CXXTEST_INCLUDE_DIRS ${CXXTEST_INCLUDE_DIR}) set(CXXTEST_INCLUDE_DIRS ${CXXTEST_INCLUDE_DIR})
endif() endif()
else() else()
set(CXXTEST_FOUND false) set(CXXTEST_FOUND false)
if(NOT CxxTest_FIND_QUIETLY) if(NOT CxxTest_FIND_QUIETLY)
if(CxxTest_FIND_REQUIRED) if(CxxTest_FIND_REQUIRED)
message(FATAL_ERROR "Neither Python nor Perl found, cannot use CxxTest, aborting!") message(FATAL_ERROR "Neither Python nor Perl found, cannot use CxxTest, aborting!")
else() else()
message(STATUS "Neither Python nor Perl found, CxxTest will not be used.") message(STATUS "Neither Python nor Perl found, CxxTest will not be used.")
endif() endif()
endif() endif()
endif() endif()

View File

@@ -170,7 +170,7 @@ function(env_module)
if(MOD_ARGS_OUTPUT_VARIABLE) if(MOD_ARGS_OUTPUT_VARIABLE)
set(err_var_args ERROR_VARIABLE err_var) set(err_var_args ERROR_VARIABLE err_var)
endif() endif()
execute_process( execute_process(
COMMAND mktemp -t module.cmake.XXXXXXXXXXXX COMMAND mktemp -t module.cmake.XXXXXXXXXXXX

View File

@@ -947,5 +947,5 @@ else()
endif() endif()
if(GTK2_INCLUDE_DIRS) if(GTK2_INCLUDE_DIRS)
list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS) list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS)
endif() endif()

View File

@@ -63,18 +63,18 @@ find_program(GETTEXT_MSGMERGE_EXECUTABLE msgmerge)
find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt) find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
if(GETTEXT_MSGMERGE_EXECUTABLE) if(GETTEXT_MSGMERGE_EXECUTABLE)
execute_process(COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --version execute_process(COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --version
OUTPUT_VARIABLE gettext_version OUTPUT_VARIABLE gettext_version
ERROR_QUIET ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
get_filename_component(msgmerge_name ${GETTEXT_MSGMERGE_EXECUTABLE} NAME) get_filename_component(msgmerge_name ${GETTEXT_MSGMERGE_EXECUTABLE} NAME)
get_filename_component(msgmerge_namewe ${GETTEXT_MSGMERGE_EXECUTABLE} NAME_WE) get_filename_component(msgmerge_namewe ${GETTEXT_MSGMERGE_EXECUTABLE} NAME_WE)
if (gettext_version MATCHES "^(${msgmerge_name}|${msgmerge_namewe}) \\([^\\)]*\\) ([0-9\\.]+[^ \n]*)") if (gettext_version MATCHES "^(${msgmerge_name}|${msgmerge_namewe}) \\([^\\)]*\\) ([0-9\\.]+[^ \n]*)")
set(GETTEXT_VERSION_STRING "${CMAKE_MATCH_2}") set(GETTEXT_VERSION_STRING "${CMAKE_MATCH_2}")
endif() endif()
unset(gettext_version) unset(gettext_version)
unset(msgmerge_name) unset(msgmerge_name)
unset(msgmerge_namewe) unset(msgmerge_namewe)
endif() endif()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
@@ -83,150 +83,150 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gettext
VERSION_VAR GETTEXT_VERSION_STRING) VERSION_VAR GETTEXT_VERSION_STRING)
function(_GETTEXT_GET_UNIQUE_TARGET_NAME _name _unique_name) function(_GETTEXT_GET_UNIQUE_TARGET_NAME _name _unique_name)
set(propertyName "_GETTEXT_UNIQUE_COUNTER_${_name}") set(propertyName "_GETTEXT_UNIQUE_COUNTER_${_name}")
get_property(currentCounter GLOBAL PROPERTY "${propertyName}") get_property(currentCounter GLOBAL PROPERTY "${propertyName}")
if(NOT currentCounter) if(NOT currentCounter)
set(currentCounter 1) set(currentCounter 1)
endif() endif()
set(${_unique_name} "${_name}_${currentCounter}" PARENT_SCOPE) set(${_unique_name} "${_name}_${currentCounter}" PARENT_SCOPE)
math(EXPR currentCounter "${currentCounter} + 1") math(EXPR currentCounter "${currentCounter} + 1")
set_property(GLOBAL PROPERTY ${propertyName} ${currentCounter} ) set_property(GLOBAL PROPERTY ${propertyName} ${currentCounter} )
endfunction() endfunction()
macro(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFileArg) macro(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFileArg)
# make it a real variable, so we can modify it here # make it a real variable, so we can modify it here
set(_firstPoFile "${_firstPoFileArg}") set(_firstPoFile "${_firstPoFileArg}")
set(_gmoFiles) set(_gmoFiles)
get_filename_component(_potName ${_potFile} NAME) get_filename_component(_potName ${_potFile} NAME)
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName}) string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName})
get_filename_component(_absPotFile ${_potFile} ABSOLUTE) get_filename_component(_absPotFile ${_potFile} ABSOLUTE)
set(_addToAll) set(_addToAll)
if(${_firstPoFile} STREQUAL "ALL") if(${_firstPoFile} STREQUAL "ALL")
set(_addToAll "ALL") set(_addToAll "ALL")
set(_firstPoFile) set(_firstPoFile)
endif() endif()
foreach (_currentPoFile ${_firstPoFile} ${ARGN}) foreach (_currentPoFile ${_firstPoFile} ${ARGN})
get_filename_component(_absFile ${_currentPoFile} ABSOLUTE) get_filename_component(_absFile ${_currentPoFile} ABSOLUTE)
get_filename_component(_abs_PATH ${_absFile} PATH) get_filename_component(_abs_PATH ${_absFile} PATH)
get_filename_component(_lang ${_absFile} NAME_WE) get_filename_component(_lang ${_absFile} NAME_WE)
set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
add_custom_command( add_custom_command(
OUTPUT ${_gmoFile} OUTPUT ${_gmoFile}
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile} COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile}
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile} COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile}
DEPENDS ${_absPotFile} ${_absFile} DEPENDS ${_absPotFile} ${_absFile}
) )
install(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) install(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
set(_gmoFiles ${_gmoFiles} ${_gmoFile}) set(_gmoFiles ${_gmoFiles} ${_gmoFile})
endforeach () endforeach ()
if(NOT TARGET translations) if(NOT TARGET translations)
add_custom_target(translations) add_custom_target(translations)
endif() endif()
_GETTEXT_GET_UNIQUE_TARGET_NAME(translations uniqueTargetName) _GETTEXT_GET_UNIQUE_TARGET_NAME(translations uniqueTargetName)
add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_gmoFiles}) add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_gmoFiles})
add_dependencies(translations ${uniqueTargetName}) add_dependencies(translations ${uniqueTargetName})
endmacro() endmacro()
function(GETTEXT_PROCESS_POT_FILE _potFile) function(GETTEXT_PROCESS_POT_FILE _potFile)
set(_gmoFiles) set(_gmoFiles)
set(_options ALL) set(_options ALL)
set(_oneValueArgs INSTALL_DESTINATION) set(_oneValueArgs INSTALL_DESTINATION)
set(_multiValueArgs LANGUAGES) set(_multiValueArgs LANGUAGES)
CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN}) CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN})
get_filename_component(_potName ${_potFile} NAME) get_filename_component(_potName ${_potFile} NAME)
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName}) string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName})
get_filename_component(_absPotFile ${_potFile} ABSOLUTE) get_filename_component(_absPotFile ${_potFile} ABSOLUTE)
foreach (_lang ${_parsedArguments_LANGUAGES}) foreach (_lang ${_parsedArguments_LANGUAGES})
set(_poFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po") set(_poFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po")
set(_gmoFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo") set(_gmoFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo")
add_custom_command( add_custom_command(
OUTPUT "${_poFile}" OUTPUT "${_poFile}"
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_poFile} ${_absPotFile} COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_poFile} ${_absPotFile}
DEPENDS ${_absPotFile} DEPENDS ${_absPotFile}
) )
add_custom_command( add_custom_command(
OUTPUT "${_gmoFile}" OUTPUT "${_gmoFile}"
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile} COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile}
DEPENDS ${_absPotFile} ${_poFile} DEPENDS ${_absPotFile} ${_poFile}
) )
if(_parsedArguments_INSTALL_DESTINATION) if(_parsedArguments_INSTALL_DESTINATION)
install(FILES ${_gmoFile} DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) install(FILES ${_gmoFile} DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
endif() endif()
list(APPEND _gmoFiles ${_gmoFile}) list(APPEND _gmoFiles ${_gmoFile})
endforeach () endforeach ()
if(NOT TARGET potfiles) if(NOT TARGET potfiles)
add_custom_target(potfiles) add_custom_target(potfiles)
endif() endif()
_GETTEXT_GET_UNIQUE_TARGET_NAME( potfiles uniqueTargetName) _GETTEXT_GET_UNIQUE_TARGET_NAME( potfiles uniqueTargetName)
if(_parsedArguments_ALL) if(_parsedArguments_ALL)
add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles}) add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles})
else() else()
add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles}) add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles})
endif() endif()
add_dependencies(potfiles ${uniqueTargetName}) add_dependencies(potfiles ${uniqueTargetName})
endfunction() endfunction()
function(GETTEXT_PROCESS_PO_FILES _lang) function(GETTEXT_PROCESS_PO_FILES _lang)
set(_options ALL) set(_options ALL)
set(_oneValueArgs INSTALL_DESTINATION) set(_oneValueArgs INSTALL_DESTINATION)
set(_multiValueArgs PO_FILES) set(_multiValueArgs PO_FILES)
set(_gmoFiles) set(_gmoFiles)
CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN}) CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN})
foreach(_current_PO_FILE ${_parsedArguments_PO_FILES}) foreach(_current_PO_FILE ${_parsedArguments_PO_FILES})
get_filename_component(_name ${_current_PO_FILE} NAME) get_filename_component(_name ${_current_PO_FILE} NAME)
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _basename ${_name}) string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _basename ${_name})
set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo) set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo)
add_custom_command(OUTPUT ${_gmoFile} add_custom_command(OUTPUT ${_gmoFile}
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE} COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS ${_current_PO_FILE} DEPENDS ${_current_PO_FILE}
) )
if(_parsedArguments_INSTALL_DESTINATION) if(_parsedArguments_INSTALL_DESTINATION)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES/ RENAME ${_basename}.mo) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES/ RENAME ${_basename}.mo)
endif() endif()
list(APPEND _gmoFiles ${_gmoFile}) list(APPEND _gmoFiles ${_gmoFile})
endforeach() endforeach()
if(NOT TARGET pofiles) if(NOT TARGET pofiles)
add_custom_target(pofiles) add_custom_target(pofiles)
endif() endif()
_GETTEXT_GET_UNIQUE_TARGET_NAME( pofiles uniqueTargetName) _GETTEXT_GET_UNIQUE_TARGET_NAME( pofiles uniqueTargetName)
if(_parsedArguments_ALL) if(_parsedArguments_ALL)
add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles}) add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles})
else() else()
add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles}) add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles})
endif() endif()
add_dependencies(pofiles ${uniqueTargetName}) add_dependencies(pofiles ${uniqueTargetName})
endfunction() endfunction()

View File

@@ -23,31 +23,31 @@ Once done this will define
if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARY) if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARY)
# in cache already # in cache already
set(gnutls_FIND_QUIETLY TRUE) set(gnutls_FIND_QUIETLY TRUE)
endif () endif ()
if (NOT WIN32) if (NOT WIN32)
# try using pkg-config to get the directories and then use these values # try using pkg-config to get the directories and then use these values
# in the find_path() and find_library() calls # in the find_path() and find_library() calls
# also fills in GNUTLS_DEFINITIONS, although that isn't normally useful # also fills in GNUTLS_DEFINITIONS, although that isn't normally useful
find_package(PkgConfig QUIET) find_package(PkgConfig QUIET)
PKG_CHECK_MODULES(PC_GNUTLS QUIET gnutls) PKG_CHECK_MODULES(PC_GNUTLS QUIET gnutls)
set(GNUTLS_DEFINITIONS ${PC_GNUTLS_CFLAGS_OTHER}) set(GNUTLS_DEFINITIONS ${PC_GNUTLS_CFLAGS_OTHER})
set(GNUTLS_VERSION_STRING ${PC_GNUTLS_VERSION}) set(GNUTLS_VERSION_STRING ${PC_GNUTLS_VERSION})
endif () endif ()
find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h
HINTS HINTS
${PC_GNUTLS_INCLUDEDIR} ${PC_GNUTLS_INCLUDEDIR}
${PC_GNUTLS_INCLUDE_DIRS} ${PC_GNUTLS_INCLUDE_DIRS}
) )
find_library(GNUTLS_LIBRARY NAMES gnutls libgnutls find_library(GNUTLS_LIBRARY NAMES gnutls libgnutls
HINTS HINTS
${PC_GNUTLS_LIBDIR} ${PC_GNUTLS_LIBDIR}
${PC_GNUTLS_LIBRARY_DIRS} ${PC_GNUTLS_LIBRARY_DIRS}
) )
mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY) mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY)
@@ -57,6 +57,6 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GnuTLS
VERSION_VAR GNUTLS_VERSION_STRING) VERSION_VAR GNUTLS_VERSION_STRING)
if(GNUTLS_FOUND) if(GNUTLS_FOUND)
set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARY}) set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARY})
set(GNUTLS_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR}) set(GNUTLS_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR})
endif() endif()

View File

@@ -41,7 +41,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jasper
VERSION_VAR JASPER_VERSION_STRING) VERSION_VAR JASPER_VERSION_STRING)
if (JASPER_FOUND) if (JASPER_FOUND)
set(JASPER_LIBRARIES ${JASPER_LIBRARIES} ${JPEG_LIBRARIES} ) set(JASPER_LIBRARIES ${JASPER_LIBRARIES} ${JPEG_LIBRARIES} )
endif () endif ()
mark_as_advanced(JASPER_INCLUDE_DIR) mark_as_advanced(JASPER_INCLUDE_DIR)

View File

@@ -139,7 +139,7 @@ Author: Alexander Neundorf <neundorf@kde.org>
#]=======================================================================] #]=======================================================================]
if(NOT UNIX AND KDE3_FIND_REQUIRED) if(NOT UNIX AND KDE3_FIND_REQUIRED)
message(FATAL_ERROR "Compiling KDE3 applications and libraries under Windows is not supported") message(FATAL_ERROR "Compiling KDE3 applications and libraries under Windows is not supported")
endif() endif()
# If Qt4 has already been found, fail. # If Qt4 has already been found, fail.
@@ -170,24 +170,24 @@ find_package(X11 ${_REQ_STRING_KDE3})
#now try to find some kde stuff #now try to find some kde stuff
find_program(KDECONFIG_EXECUTABLE NAMES kde-config find_program(KDECONFIG_EXECUTABLE NAMES kde-config
HINTS HINTS
$ENV{KDEDIR}/bin $ENV{KDEDIR}/bin
PATHS PATHS
/opt/kde3/bin /opt/kde3/bin
/opt/kde/bin /opt/kde/bin
) )
set(KDE3PREFIX) set(KDE3PREFIX)
if(KDECONFIG_EXECUTABLE) if(KDECONFIG_EXECUTABLE)
execute_process(COMMAND ${KDECONFIG_EXECUTABLE} --version execute_process(COMMAND ${KDECONFIG_EXECUTABLE} --version
OUTPUT_VARIABLE kde_config_version ) OUTPUT_VARIABLE kde_config_version )
string(REGEX MATCH "KDE: .\\." kde_version "${kde_config_version}") string(REGEX MATCH "KDE: .\\." kde_version "${kde_config_version}")
if ("${kde_version}" MATCHES "KDE: 3\\.") if ("${kde_version}" MATCHES "KDE: 3\\.")
execute_process(COMMAND ${KDECONFIG_EXECUTABLE} --prefix execute_process(COMMAND ${KDECONFIG_EXECUTABLE} --prefix
OUTPUT_VARIABLE kdedir ) OUTPUT_VARIABLE kdedir )
string(REPLACE "\n" "" KDE3PREFIX "${kdedir}") string(REPLACE "\n" "" KDE3PREFIX "${kdedir}")
endif () endif ()
endif() endif()
@@ -196,22 +196,22 @@ endif()
# kpassdlg.h comes from kdeui and doesn't exist in KDE4 anymore # kpassdlg.h comes from kdeui and doesn't exist in KDE4 anymore
find_path(KDE3_INCLUDE_DIR kpassdlg.h find_path(KDE3_INCLUDE_DIR kpassdlg.h
HINTS HINTS
$ENV{KDEDIR}/include $ENV{KDEDIR}/include
${KDE3PREFIX}/include ${KDE3PREFIX}/include
PATHS PATHS
/opt/kde3/include /opt/kde3/include
/opt/kde/include /opt/kde/include
PATH_SUFFIXES include/kde PATH_SUFFIXES include/kde
) )
#now the KDE library directory #now the KDE library directory
find_library(KDE3_KDECORE_LIBRARY NAMES kdecore find_library(KDE3_KDECORE_LIBRARY NAMES kdecore
HINTS HINTS
$ENV{KDEDIR}/lib $ENV{KDEDIR}/lib
${KDE3PREFIX}/lib ${KDE3PREFIX}/lib
PATHS PATHS
/opt/kde3/lib /opt/kde3/lib
/opt/kde/lib /opt/kde/lib
) )
set(QT_AND_KDECORE_LIBS ${QT_LIBRARIES} ${KDE3_KDECORE_LIBRARY}) set(QT_AND_KDECORE_LIBS ${QT_LIBRARIES} ${KDE3_KDECORE_LIBRARY})
@@ -219,49 +219,49 @@ set(QT_AND_KDECORE_LIBS ${QT_LIBRARIES} ${KDE3_KDECORE_LIBRARY})
get_filename_component(KDE3_LIB_DIR ${KDE3_KDECORE_LIBRARY} PATH ) get_filename_component(KDE3_LIB_DIR ${KDE3_KDECORE_LIBRARY} PATH )
if(NOT KDE3_LIBTOOL_DIR) if(NOT KDE3_LIBTOOL_DIR)
if(KDE3_KDECORE_LIBRARY MATCHES lib64) if(KDE3_KDECORE_LIBRARY MATCHES lib64)
set(KDE3_LIBTOOL_DIR /lib64/kde3) set(KDE3_LIBTOOL_DIR /lib64/kde3)
elseif(KDE3_KDECORE_LIBRARY MATCHES libx32) elseif(KDE3_KDECORE_LIBRARY MATCHES libx32)
set(KDE3_LIBTOOL_DIR /libx32/kde3) set(KDE3_LIBTOOL_DIR /libx32/kde3)
else() else()
set(KDE3_LIBTOOL_DIR /lib/kde3) set(KDE3_LIBTOOL_DIR /lib/kde3)
endif() endif()
endif() endif()
#now search for the dcop utilities #now search for the dcop utilities
find_program(KDE3_DCOPIDL_EXECUTABLE NAMES dcopidl find_program(KDE3_DCOPIDL_EXECUTABLE NAMES dcopidl
HINTS HINTS
$ENV{KDEDIR}/bin $ENV{KDEDIR}/bin
${KDE3PREFIX}/bin ${KDE3PREFIX}/bin
PATHS PATHS
/opt/kde3/bin /opt/kde3/bin
/opt/kde/bin /opt/kde/bin
) )
find_program(KDE3_DCOPIDL2CPP_EXECUTABLE NAMES dcopidl2cpp find_program(KDE3_DCOPIDL2CPP_EXECUTABLE NAMES dcopidl2cpp
HINTS HINTS
$ENV{KDEDIR}/bin $ENV{KDEDIR}/bin
${KDE3PREFIX}/bin ${KDE3PREFIX}/bin
PATHS PATHS
/opt/kde3/bin /opt/kde3/bin
/opt/kde/bin /opt/kde/bin
) )
find_program(KDE3_KCFGC_EXECUTABLE NAMES kconfig_compiler find_program(KDE3_KCFGC_EXECUTABLE NAMES kconfig_compiler
HINTS HINTS
$ENV{KDEDIR}/bin $ENV{KDEDIR}/bin
${KDE3PREFIX}/bin ${KDE3PREFIX}/bin
PATHS PATHS
/opt/kde3/bin /opt/kde3/bin
/opt/kde/bin /opt/kde/bin
) )
#SET KDE3_FOUND #SET KDE3_FOUND
if (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) if (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE)
set(KDE3_FOUND TRUE) set(KDE3_FOUND TRUE)
else () else ()
set(KDE3_FOUND FALSE) set(KDE3_FOUND FALSE)
endif () endif ()
# add some KDE specific stuff # add some KDE specific stuff
@@ -269,36 +269,36 @@ set(KDE3_DEFINITIONS -DQT_CLEAN_NAMESPACE -D_GNU_SOURCE)
# set compiler flags only if KDE3 has actually been found # set compiler flags only if KDE3 has actually been found
if(KDE3_FOUND) if(KDE3_FOUND)
set(_KDE3_USE_FLAGS FALSE) set(_KDE3_USE_FLAGS FALSE)
if(CMAKE_COMPILER_IS_GNUCXX) if(CMAKE_COMPILER_IS_GNUCXX)
set(_KDE3_USE_FLAGS TRUE) # use flags for gnu compiler set(_KDE3_USE_FLAGS TRUE) # use flags for gnu compiler
execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version
OUTPUT_VARIABLE out) OUTPUT_VARIABLE out)
# gnu gcc 2.96 does not work with flags # gnu gcc 2.96 does not work with flags
# I guess 2.95 also doesn't then # I guess 2.95 also doesn't then
if("${out}" MATCHES "2.9[56]") if("${out}" MATCHES "2.9[56]")
set(_KDE3_USE_FLAGS FALSE) set(_KDE3_USE_FLAGS FALSE)
endif() endif()
endif() endif()
#only on linux, but NOT e.g. on FreeBSD: #only on linux, but NOT e.g. on FreeBSD:
if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND _KDE3_USE_FLAGS) if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND _KDE3_USE_FLAGS)
set (KDE3_DEFINITIONS ${KDE3_DEFINITIONS} -D_XOPEN_SOURCE=500 -D_BSD_SOURCE) set (KDE3_DEFINITIONS ${KDE3_DEFINITIONS} -D_XOPEN_SOURCE=500 -D_BSD_SOURCE)
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common")
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-exceptions -fno-check-new -fno-common") set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-exceptions -fno-check-new -fno-common")
endif() endif()
# works on FreeBSD, NOT tested on NetBSD and OpenBSD # works on FreeBSD, NOT tested on NetBSD and OpenBSD
if (CMAKE_SYSTEM_NAME MATCHES BSD AND _KDE3_USE_FLAGS) if (CMAKE_SYSTEM_NAME MATCHES BSD AND _KDE3_USE_FLAGS)
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common")
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common") set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common")
endif () endif ()
# if no special buildtype is selected, add -O2 as default optimization # if no special buildtype is selected, add -O2 as default optimization
if (NOT CMAKE_BUILD_TYPE AND _KDE3_USE_FLAGS) if (NOT CMAKE_BUILD_TYPE AND _KDE3_USE_FLAGS)
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
endif () endif ()
#set(CMAKE_SHARED_LINKER_FLAGS "-avoid-version -module -Wl,--no-undefined -Wl,--allow-shlib-undefined") #set(CMAKE_SHARED_LINKER_FLAGS "-avoid-version -module -Wl,--no-undefined -Wl,--allow-shlib-undefined")
#set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc") #set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc")
@@ -311,49 +311,49 @@ include(${CMAKE_CURRENT_LIST_DIR}/KDE3Macros.cmake)
macro (KDE3_PRINT_RESULTS) macro (KDE3_PRINT_RESULTS)
if(KDE3_INCLUDE_DIR) if(KDE3_INCLUDE_DIR)
message(STATUS "Found KDE3 include dir: ${KDE3_INCLUDE_DIR}") message(STATUS "Found KDE3 include dir: ${KDE3_INCLUDE_DIR}")
else() else()
message(STATUS "Didn't find KDE3 headers") message(STATUS "Didn't find KDE3 headers")
endif() endif()
if(KDE3_LIB_DIR) if(KDE3_LIB_DIR)
message(STATUS "Found KDE3 library dir: ${KDE3_LIB_DIR}") message(STATUS "Found KDE3 library dir: ${KDE3_LIB_DIR}")
else() else()
message(STATUS "Didn't find KDE3 core library") message(STATUS "Didn't find KDE3 core library")
endif() endif()
if(KDE3_DCOPIDL_EXECUTABLE) if(KDE3_DCOPIDL_EXECUTABLE)
message(STATUS "Found KDE3 dcopidl preprocessor: ${KDE3_DCOPIDL_EXECUTABLE}") message(STATUS "Found KDE3 dcopidl preprocessor: ${KDE3_DCOPIDL_EXECUTABLE}")
else() else()
message(STATUS "Didn't find the KDE3 dcopidl preprocessor") message(STATUS "Didn't find the KDE3 dcopidl preprocessor")
endif() endif()
if(KDE3_DCOPIDL2CPP_EXECUTABLE) if(KDE3_DCOPIDL2CPP_EXECUTABLE)
message(STATUS "Found KDE3 dcopidl2cpp preprocessor: ${KDE3_DCOPIDL2CPP_EXECUTABLE}") message(STATUS "Found KDE3 dcopidl2cpp preprocessor: ${KDE3_DCOPIDL2CPP_EXECUTABLE}")
else() else()
message(STATUS "Didn't find the KDE3 dcopidl2cpp preprocessor") message(STATUS "Didn't find the KDE3 dcopidl2cpp preprocessor")
endif() endif()
if(KDE3_KCFGC_EXECUTABLE) if(KDE3_KCFGC_EXECUTABLE)
message(STATUS "Found KDE3 kconfig_compiler preprocessor: ${KDE3_KCFGC_EXECUTABLE}") message(STATUS "Found KDE3 kconfig_compiler preprocessor: ${KDE3_KCFGC_EXECUTABLE}")
else() else()
message(STATUS "Didn't find the KDE3 kconfig_compiler preprocessor") message(STATUS "Didn't find the KDE3 kconfig_compiler preprocessor")
endif() endif()
endmacro () endmacro ()
if (KDE3_FIND_REQUIRED AND NOT KDE3_FOUND) if (KDE3_FIND_REQUIRED AND NOT KDE3_FOUND)
#bail out if something wasn't found #bail out if something wasn't found
KDE3_PRINT_RESULTS() KDE3_PRINT_RESULTS()
message(FATAL_ERROR "Could NOT find everything required for compiling KDE 3 programs") message(FATAL_ERROR "Could NOT find everything required for compiling KDE 3 programs")
endif () endif ()
if (NOT KDE3_FIND_QUIETLY) if (NOT KDE3_FIND_QUIETLY)
KDE3_PRINT_RESULTS() KDE3_PRINT_RESULTS()
endif () endif ()
#add the found Qt and KDE include directories to the current include path #add the found Qt and KDE include directories to the current include path

View File

@@ -57,47 +57,47 @@ find_program(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config
) )
if (NOT KDE4_KDECONFIG_EXECUTABLE) if (NOT KDE4_KDECONFIG_EXECUTABLE)
if (KDE4_FIND_REQUIRED) if (KDE4_FIND_REQUIRED)
message(FATAL_ERROR "ERROR: Could not find KDE4 kde4-config") message(FATAL_ERROR "ERROR: Could not find KDE4 kde4-config")
endif () endif ()
endif () endif ()
# when cross compiling, KDE4_DATA_DIR may be already preset # when cross compiling, KDE4_DATA_DIR may be already preset
if(NOT KDE4_DATA_DIR) if(NOT KDE4_DATA_DIR)
if(CMAKE_CROSSCOMPILING) if(CMAKE_CROSSCOMPILING)
# when cross compiling, don't run kde4-config but use its location as install dir # when cross compiling, don't run kde4-config but use its location as install dir
get_filename_component(KDE4_DATA_DIR "${KDE4_KDECONFIG_EXECUTABLE}" PATH) get_filename_component(KDE4_DATA_DIR "${KDE4_KDECONFIG_EXECUTABLE}" PATH)
get_filename_component(KDE4_DATA_DIR "${KDE4_DATA_DIR}" PATH) get_filename_component(KDE4_DATA_DIR "${KDE4_DATA_DIR}" PATH)
else() else()
# then ask kde4-config for the kde data dirs # then ask kde4-config for the kde data dirs
if(KDE4_KDECONFIG_EXECUTABLE) if(KDE4_KDECONFIG_EXECUTABLE)
execute_process(COMMAND "${KDE4_KDECONFIG_EXECUTABLE}" --path data OUTPUT_VARIABLE _data_DIR ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND "${KDE4_KDECONFIG_EXECUTABLE}" --path data OUTPUT_VARIABLE _data_DIR ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
file(TO_CMAKE_PATH "${_data_DIR}" _data_DIR) file(TO_CMAKE_PATH "${_data_DIR}" _data_DIR)
# then check the data dirs for FindKDE4Internal.cmake # then check the data dirs for FindKDE4Internal.cmake
find_path(KDE4_DATA_DIR cmake/modules/FindKDE4Internal.cmake HINTS ${_data_DIR}) find_path(KDE4_DATA_DIR cmake/modules/FindKDE4Internal.cmake HINTS ${_data_DIR})
endif() endif()
endif() endif()
endif() endif()
# if it has been found... # if it has been found...
if (KDE4_DATA_DIR) if (KDE4_DATA_DIR)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${KDE4_DATA_DIR}/cmake/modules) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${KDE4_DATA_DIR}/cmake/modules)
if (KDE4_FIND_QUIETLY) if (KDE4_FIND_QUIETLY)
set(_quiet QUIET) set(_quiet QUIET)
endif () endif ()
if (KDE4_FIND_REQUIRED) if (KDE4_FIND_REQUIRED)
set(_req REQUIRED) set(_req REQUIRED)
endif () endif ()
# use FindKDE4Internal.cmake to do the rest # use FindKDE4Internal.cmake to do the rest
find_package(KDE4Internal ${_req} ${_quiet} NO_POLICY_SCOPE) find_package(KDE4Internal ${_req} ${_quiet} NO_POLICY_SCOPE)
else () else ()
if (KDE4_FIND_REQUIRED) if (KDE4_FIND_REQUIRED)
message(FATAL_ERROR "ERROR: cmake/modules/FindKDE4Internal.cmake not found in ${_data_DIR}") message(FATAL_ERROR "ERROR: cmake/modules/FindKDE4Internal.cmake not found in ${_data_DIR}")
endif () endif ()
endif () endif ()

View File

@@ -173,11 +173,11 @@ if(_libraries_work)
#message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}") #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
endif() endif()
if(_libraries_work) if(_libraries_work)
set(${LIBRARIES} ${${LIBRARIES}} ${_blas} ${_threads}) set(${LIBRARIES} ${${LIBRARIES}} ${_blas} ${_threads})
else() else()
set(${LIBRARIES} FALSE) set(${LIBRARIES} FALSE)
endif() endif()
endmacro() endmacro()
@@ -325,25 +325,25 @@ if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
endif () endif ()
#acml lapack #acml lapack
if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All") if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
if (BLAS_LIBRARIES MATCHES ".+acml.+") if (BLAS_LIBRARIES MATCHES ".+acml.+")
set (LAPACK_LIBRARIES ${BLAS_LIBRARIES}) set (LAPACK_LIBRARIES ${BLAS_LIBRARIES})
endif () endif ()
endif () endif ()
# Apple LAPACK library? # Apple LAPACK library?
if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All") if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
if(NOT LAPACK_LIBRARIES) if(NOT LAPACK_LIBRARIES)
check_lapack_libraries( check_lapack_libraries(
LAPACK_LIBRARIES LAPACK_LIBRARIES
LAPACK LAPACK
cheev cheev
"" ""
"Accelerate" "Accelerate"
"${BLAS_LIBRARIES}" "${BLAS_LIBRARIES}"
"" ""
) )
endif() endif()
endif () endif ()
if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All") if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
if ( NOT LAPACK_LIBRARIES ) if ( NOT LAPACK_LIBRARIES )
@@ -380,50 +380,50 @@ else()
endif() endif()
if(BLA_F95) if(BLA_F95)
if(LAPACK95_LIBRARIES) if(LAPACK95_LIBRARIES)
set(LAPACK95_FOUND TRUE) set(LAPACK95_FOUND TRUE)
else()
set(LAPACK95_FOUND FALSE)
endif()
if(NOT LAPACK_FIND_QUIETLY)
if(LAPACK95_FOUND)
message(STATUS "A library with LAPACK95 API found.")
else() else()
if(LAPACK_FIND_REQUIRED) set(LAPACK95_FOUND FALSE)
message(FATAL_ERROR endif()
"A required library with LAPACK95 API not found. Please specify library location." if(NOT LAPACK_FIND_QUIETLY)
) if(LAPACK95_FOUND)
message(STATUS "A library with LAPACK95 API found.")
else() else()
message(STATUS if(LAPACK_FIND_REQUIRED)
"A library with LAPACK95 API not found. Please specify library location." message(FATAL_ERROR
) "A required library with LAPACK95 API not found. Please specify library location."
)
else()
message(STATUS
"A library with LAPACK95 API not found. Please specify library location."
)
endif()
endif() endif()
endif() endif()
endif() set(LAPACK_FOUND "${LAPACK95_FOUND}")
set(LAPACK_FOUND "${LAPACK95_FOUND}") set(LAPACK_LIBRARIES "${LAPACK95_LIBRARIES}")
set(LAPACK_LIBRARIES "${LAPACK95_LIBRARIES}")
else() else()
if(LAPACK_LIBRARIES) if(LAPACK_LIBRARIES)
set(LAPACK_FOUND TRUE) set(LAPACK_FOUND TRUE)
else()
set(LAPACK_FOUND FALSE)
endif()
if(NOT LAPACK_FIND_QUIETLY)
if(LAPACK_FOUND)
message(STATUS "A library with LAPACK API found.")
else() else()
if(LAPACK_FIND_REQUIRED) set(LAPACK_FOUND FALSE)
message(FATAL_ERROR endif()
"A required library with LAPACK API not found. Please specify library location."
) if(NOT LAPACK_FIND_QUIETLY)
if(LAPACK_FOUND)
message(STATUS "A library with LAPACK API found.")
else() else()
message(STATUS if(LAPACK_FIND_REQUIRED)
"A library with LAPACK API not found. Please specify library location." message(FATAL_ERROR
) "A required library with LAPACK API not found. Please specify library location."
)
else()
message(STATUS
"A library with LAPACK API not found. Please specify library location."
)
endif()
endif() endif()
endif() endif()
endif()
endif() endif()
cmake_pop_check_state() cmake_pop_check_state()

View File

@@ -171,7 +171,7 @@ find_program(XINDY_COMPILER
/usr/bin /usr/bin
) )
if (XINDY_COMPILER) if (XINDY_COMPILER)
set(LATEX_XINDY_FOUND TRUE) set(LATEX_XINDY_FOUND TRUE)
else() else()
set(LATEX_XINDY_FOUND FALSE) set(LATEX_XINDY_FOUND FALSE)
endif() endif()

View File

@@ -59,13 +59,13 @@ endif()
# it can be found in http://tukaani.org/xz/ # it can be found in http://tukaani.org/xz/
# Avoid using old codebase # Avoid using old codebase
if (LIBLZMA_LIBRARY) if (LIBLZMA_LIBRARY)
include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake) include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake)
set(CMAKE_REQUIRED_QUIET_SAVE ${CMAKE_REQUIRED_QUIET}) set(CMAKE_REQUIRED_QUIET_SAVE ${CMAKE_REQUIRED_QUIET})
set(CMAKE_REQUIRED_QUIET ${LibLZMA_FIND_QUIETLY}) set(CMAKE_REQUIRED_QUIET ${LibLZMA_FIND_QUIETLY})
CHECK_LIBRARY_EXISTS(${LIBLZMA_LIBRARY} lzma_auto_decoder "" LIBLZMA_HAS_AUTO_DECODER) CHECK_LIBRARY_EXISTS(${LIBLZMA_LIBRARY} lzma_auto_decoder "" LIBLZMA_HAS_AUTO_DECODER)
CHECK_LIBRARY_EXISTS(${LIBLZMA_LIBRARY} lzma_easy_encoder "" LIBLZMA_HAS_EASY_ENCODER) CHECK_LIBRARY_EXISTS(${LIBLZMA_LIBRARY} lzma_easy_encoder "" LIBLZMA_HAS_EASY_ENCODER)
CHECK_LIBRARY_EXISTS(${LIBLZMA_LIBRARY} lzma_lzma_preset "" LIBLZMA_HAS_LZMA_PRESET) CHECK_LIBRARY_EXISTS(${LIBLZMA_LIBRARY} lzma_lzma_preset "" LIBLZMA_HAS_LZMA_PRESET)
set(CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET_SAVE}) set(CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET_SAVE})
endif () endif ()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)

View File

@@ -96,7 +96,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2
mark_as_advanced(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARY LIBXML2_XMLLINT_EXECUTABLE) mark_as_advanced(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARY LIBXML2_XMLLINT_EXECUTABLE)
if(LibXml2_FOUND AND NOT TARGET LibXml2::LibXml2) if(LibXml2_FOUND AND NOT TARGET LibXml2::LibXml2)
add_library(LibXml2::LibXml2 UNKNOWN IMPORTED) add_library(LibXml2::LibXml2 UNKNOWN IMPORTED)
set_target_properties(LibXml2::LibXml2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXML2_INCLUDE_DIRS}") set_target_properties(LibXml2::LibXml2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXML2_INCLUDE_DIRS}")
set_property(TARGET LibXml2::LibXml2 APPEND PROPERTY IMPORTED_LOCATION "${LIBXML2_LIBRARY}") set_property(TARGET LibXml2::LibXml2 APPEND PROPERTY IMPORTED_LOCATION "${LIBXML2_LIBRARY}")
endif() endif()

View File

@@ -84,105 +84,104 @@ function(_lua_get_versions)
endfunction() endfunction()
function(_lua_set_version_vars) function(_lua_set_version_vars)
set(_lua_include_subdirs_raw "lua") set(_lua_include_subdirs_raw "lua")
foreach (ver IN LISTS _lua_append_versions) foreach (ver IN LISTS _lua_append_versions)
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)$" _ver "${ver}") string(REGEX MATCH "^([0-9]+)\\.([0-9]+)$" _ver "${ver}")
list(APPEND _lua_include_subdirs_raw list(APPEND _lua_include_subdirs_raw
lua${CMAKE_MATCH_1}${CMAKE_MATCH_2} lua${CMAKE_MATCH_1}${CMAKE_MATCH_2}
lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2} lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2} lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
) )
endforeach () endforeach ()
# Prepend "include/" to each path directly after the path # Prepend "include/" to each path directly after the path
set(_lua_include_subdirs "include") set(_lua_include_subdirs "include")
foreach (dir IN LISTS _lua_include_subdirs_raw) foreach (dir IN LISTS _lua_include_subdirs_raw)
list(APPEND _lua_include_subdirs "${dir}" "include/${dir}") list(APPEND _lua_include_subdirs "${dir}" "include/${dir}")
endforeach () endforeach ()
set(_lua_include_subdirs "${_lua_include_subdirs}" PARENT_SCOPE) set(_lua_include_subdirs "${_lua_include_subdirs}" PARENT_SCOPE)
endfunction(_lua_set_version_vars) endfunction(_lua_set_version_vars)
function(_lua_get_header_version) function(_lua_get_header_version)
unset(LUA_VERSION_STRING PARENT_SCOPE) unset(LUA_VERSION_STRING PARENT_SCOPE)
set(_hdr_file "${LUA_INCLUDE_DIR}/lua.h") set(_hdr_file "${LUA_INCLUDE_DIR}/lua.h")
if (NOT EXISTS "${_hdr_file}") if (NOT EXISTS "${_hdr_file}")
return() return()
endif ()
# At least 5.[012] have different ways to express the version
# so all of them need to be tested. Lua 5.2 defines LUA_VERSION
# and LUA_RELEASE as joined by the C preprocessor, so avoid those.
file(STRINGS "${_hdr_file}" lua_version_strings
REGEX "^#define[ \t]+LUA_(RELEASE[ \t]+\"Lua [0-9]|VERSION([ \t]+\"Lua [0-9]|_[MR])).*")
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MAJOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MAJOR ";${lua_version_strings};")
if (LUA_VERSION_MAJOR MATCHES "^[0-9]+$")
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MINOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MINOR ";${lua_version_strings};")
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_RELEASE[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_PATCH ";${lua_version_strings};")
set(LUA_VERSION_STRING "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
else ()
string(REGEX REPLACE ".*;#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
if (NOT LUA_VERSION_STRING MATCHES "^[0-9.]+$")
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
endif () endif ()
string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}")
# At least 5.[012] have different ways to express the version string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}")
# so all of them need to be tested. Lua 5.2 defines LUA_VERSION string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}")
# and LUA_RELEASE as joined by the C preprocessor, so avoid those. endif ()
file(STRINGS "${_hdr_file}" lua_version_strings foreach (ver IN LISTS _lua_append_versions)
REGEX "^#define[ \t]+LUA_(RELEASE[ \t]+\"Lua [0-9]|VERSION([ \t]+\"Lua [0-9]|_[MR])).*") if (ver STREQUAL "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
set(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR} PARENT_SCOPE)
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MAJOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MAJOR ";${lua_version_strings};") set(LUA_VERSION_MINOR ${LUA_VERSION_MINOR} PARENT_SCOPE)
if (LUA_VERSION_MAJOR MATCHES "^[0-9]+$") set(LUA_VERSION_PATCH ${LUA_VERSION_PATCH} PARENT_SCOPE)
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MINOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MINOR ";${lua_version_strings};") set(LUA_VERSION_STRING ${LUA_VERSION_STRING} PARENT_SCOPE)
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_RELEASE[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_PATCH ";${lua_version_strings};") return()
set(LUA_VERSION_STRING "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
else ()
string(REGEX REPLACE ".*;#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
if (NOT LUA_VERSION_STRING MATCHES "^[0-9.]+$")
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
endif ()
string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}")
endif () endif ()
foreach (ver IN LISTS _lua_append_versions) endforeach ()
if (ver STREQUAL "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
set(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR} PARENT_SCOPE)
set(LUA_VERSION_MINOR ${LUA_VERSION_MINOR} PARENT_SCOPE)
set(LUA_VERSION_PATCH ${LUA_VERSION_PATCH} PARENT_SCOPE)
set(LUA_VERSION_STRING ${LUA_VERSION_STRING} PARENT_SCOPE)
return()
endif ()
endforeach ()
endfunction(_lua_get_header_version) endfunction(_lua_get_header_version)
function(_lua_find_header) function(_lua_find_header)
_lua_set_version_vars() _lua_set_version_vars()
# Initialize as local variable # Initialize as local variable
set(CMAKE_IGNORE_PATH ${CMAKE_IGNORE_PATH}) set(CMAKE_IGNORE_PATH ${CMAKE_IGNORE_PATH})
while (TRUE) while (TRUE)
# Find the next header to test. Check each possible subdir in order # Find the next header to test. Check each possible subdir in order
# This prefers e.g. higher versions as they are earlier in the list # This prefers e.g. higher versions as they are earlier in the list
# It is also consistent with previous versions of FindLua # It is also consistent with previous versions of FindLua
foreach (subdir IN LISTS _lua_include_subdirs) foreach (subdir IN LISTS _lua_include_subdirs)
find_path(LUA_INCLUDE_DIR lua.h find_path(LUA_INCLUDE_DIR lua.h
HINTS HINTS ENV LUA_DIR
ENV LUA_DIR PATH_SUFFIXES ${subdir}
PATH_SUFFIXES ${subdir} )
) if (LUA_INCLUDE_DIR)
if (LUA_INCLUDE_DIR) break()
break() endif()
endif() endforeach()
endforeach() # Did not found header -> Fail
# Did not found header -> Fail if (NOT LUA_INCLUDE_DIR)
if (NOT LUA_INCLUDE_DIR) return()
return() endif()
endif() _lua_get_header_version()
_lua_get_header_version() # Found accepted version -> Ok
# Found accepted version -> Ok if (LUA_VERSION_STRING)
if (LUA_VERSION_STRING) if (LUA_Debug)
if (LUA_Debug) message(STATUS "Found suitable version ${LUA_VERSION_STRING} in ${LUA_INCLUDE_DIR}/lua.h")
message(STATUS "Found suitable version ${LUA_VERSION_STRING} in ${LUA_INCLUDE_DIR}/lua.h") endif()
endif() return()
return() endif()
endif() # Found wrong version -> Ignore this path and retry
# Found wrong version -> Ignore this path and retry if (LUA_Debug)
if (LUA_Debug) message(STATUS "Ignoring unsuitable version in ${LUA_INCLUDE_DIR}")
message(STATUS "Ignoring unsuitable version in ${LUA_INCLUDE_DIR}") endif()
endif() list(APPEND CMAKE_IGNORE_PATH "${LUA_INCLUDE_DIR}")
list(APPEND CMAKE_IGNORE_PATH "${LUA_INCLUDE_DIR}") unset(LUA_INCLUDE_DIR CACHE)
unset(LUA_INCLUDE_DIR CACHE) unset(LUA_INCLUDE_DIR)
unset(LUA_INCLUDE_DIR) unset(LUA_INCLUDE_DIR PARENT_SCOPE)
unset(LUA_INCLUDE_DIR PARENT_SCOPE) endwhile ()
endwhile ()
endfunction() endfunction()
_lua_get_versions() _lua_get_versions()
@@ -191,11 +190,11 @@ _lua_get_header_version()
unset(_lua_append_versions) unset(_lua_append_versions)
if (LUA_VERSION_STRING) if (LUA_VERSION_STRING)
set(_lua_library_names set(_lua_library_names
lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR} lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}
lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR} lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR} lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
lua.${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR} lua.${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
) )
endif () endif ()
@@ -209,21 +208,21 @@ find_library(LUA_LIBRARY
unset(_lua_library_names) unset(_lua_library_names)
if (LUA_LIBRARY) if (LUA_LIBRARY)
# include the math library for Unix # include the math library for Unix
if (UNIX AND NOT APPLE AND NOT BEOS) if (UNIX AND NOT APPLE AND NOT BEOS)
find_library(LUA_MATH_LIBRARY m) find_library(LUA_MATH_LIBRARY m)
set(LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}") set(LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}")
# include dl library for statically-linked Lua library # include dl library for statically-linked Lua library
get_filename_component(LUA_LIB_EXT ${LUA_LIBRARY} EXT) get_filename_component(LUA_LIB_EXT ${LUA_LIBRARY} EXT)
if(LUA_LIB_EXT STREQUAL CMAKE_STATIC_LIBRARY_SUFFIX) if(LUA_LIB_EXT STREQUAL CMAKE_STATIC_LIBRARY_SUFFIX)
list(APPEND LUA_LIBRARIES ${CMAKE_DL_LIBS}) list(APPEND LUA_LIBRARIES ${CMAKE_DL_LIBS})
endif() endif()
# For Windows and Mac, don't need to explicitly include the math library # For Windows and Mac, don't need to explicitly include the math library
else () else ()
set(LUA_LIBRARIES "${LUA_LIBRARY}") set(LUA_LIBRARIES "${LUA_LIBRARY}")
endif () endif ()
endif () endif ()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)

View File

@@ -49,14 +49,14 @@ set(_RUBY_POSSIBLE_EXECUTABLE_NAMES ruby)
# if 1.9 is required, don't look for ruby18 and ruby1.8, default to version 1.8 # if 1.9 is required, don't look for ruby18 and ruby1.8, default to version 1.8
if(DEFINED Ruby_FIND_VERSION_MAJOR AND DEFINED Ruby_FIND_VERSION_MINOR) if(DEFINED Ruby_FIND_VERSION_MAJOR AND DEFINED Ruby_FIND_VERSION_MINOR)
set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${RUBY_FIND_VERSION_MINOR}") set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${RUBY_FIND_VERSION_MINOR}")
# we can't construct that if only major version is given # we can't construct that if only major version is given
set(_RUBY_POSSIBLE_EXECUTABLE_NAMES set(_RUBY_POSSIBLE_EXECUTABLE_NAMES
ruby${Ruby_FIND_VERSION_MAJOR}.${Ruby_FIND_VERSION_MINOR} ruby${Ruby_FIND_VERSION_MAJOR}.${Ruby_FIND_VERSION_MINOR}
ruby${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION_MINOR} ruby${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION_MINOR}
${_RUBY_POSSIBLE_EXECUTABLE_NAMES}) ${_RUBY_POSSIBLE_EXECUTABLE_NAMES})
else() else()
set(Ruby_FIND_VERSION_SHORT_NODOT "18") set(Ruby_FIND_VERSION_SHORT_NODOT "18")
endif() endif()
if(NOT Ruby_FIND_VERSION_EXACT) if(NOT Ruby_FIND_VERSION_EXACT)
@@ -94,130 +94,131 @@ if(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR)
# query the ruby version # query the ruby version
_RUBY_CONFIG_VAR("MAJOR" RUBY_VERSION_MAJOR) _RUBY_CONFIG_VAR("MAJOR" RUBY_VERSION_MAJOR)
_RUBY_CONFIG_VAR("MINOR" RUBY_VERSION_MINOR) _RUBY_CONFIG_VAR("MINOR" RUBY_VERSION_MINOR)
_RUBY_CONFIG_VAR("TEENY" RUBY_VERSION_PATCH) _RUBY_CONFIG_VAR("TEENY" RUBY_VERSION_PATCH)
# query the different directories # query the different directories
_RUBY_CONFIG_VAR("archdir" RUBY_ARCH_DIR) _RUBY_CONFIG_VAR("archdir" RUBY_ARCH_DIR)
_RUBY_CONFIG_VAR("arch" RUBY_ARCH) _RUBY_CONFIG_VAR("arch" RUBY_ARCH)
_RUBY_CONFIG_VAR("rubyhdrdir" RUBY_HDR_DIR) _RUBY_CONFIG_VAR("rubyhdrdir" RUBY_HDR_DIR)
_RUBY_CONFIG_VAR("rubyarchhdrdir" RUBY_ARCHHDR_DIR) _RUBY_CONFIG_VAR("rubyarchhdrdir" RUBY_ARCHHDR_DIR)
_RUBY_CONFIG_VAR("libdir" RUBY_POSSIBLE_LIB_DIR) _RUBY_CONFIG_VAR("libdir" RUBY_POSSIBLE_LIB_DIR)
_RUBY_CONFIG_VAR("rubylibdir" RUBY_RUBY_LIB_DIR) _RUBY_CONFIG_VAR("rubylibdir" RUBY_RUBY_LIB_DIR)
# site_ruby # site_ruby
_RUBY_CONFIG_VAR("sitearchdir" RUBY_SITEARCH_DIR) _RUBY_CONFIG_VAR("sitearchdir" RUBY_SITEARCH_DIR)
_RUBY_CONFIG_VAR("sitelibdir" RUBY_SITELIB_DIR) _RUBY_CONFIG_VAR("sitelibdir" RUBY_SITELIB_DIR)
# vendor_ruby available ? # vendor_ruby available ?
execute_process(COMMAND ${RUBY_EXECUTABLE} -r vendor-specific -e "print 'true'" execute_process(COMMAND ${RUBY_EXECUTABLE} -r vendor-specific -e "print 'true'"
OUTPUT_VARIABLE RUBY_HAS_VENDOR_RUBY ERROR_QUIET) OUTPUT_VARIABLE RUBY_HAS_VENDOR_RUBY ERROR_QUIET)
if(RUBY_HAS_VENDOR_RUBY) if(RUBY_HAS_VENDOR_RUBY)
_RUBY_CONFIG_VAR("vendorlibdir" RUBY_VENDORLIB_DIR) _RUBY_CONFIG_VAR("vendorlibdir" RUBY_VENDORLIB_DIR)
_RUBY_CONFIG_VAR("vendorarchdir" RUBY_VENDORARCH_DIR) _RUBY_CONFIG_VAR("vendorarchdir" RUBY_VENDORARCH_DIR)
endif() endif()
# save the results in the cache so we don't have to run ruby the next time again # save the results in the cache so we don't have to run ruby the next time again
set(RUBY_VERSION_MAJOR ${RUBY_VERSION_MAJOR} CACHE PATH "The Ruby major version" FORCE) set(RUBY_VERSION_MAJOR ${RUBY_VERSION_MAJOR} CACHE PATH "The Ruby major version" FORCE)
set(RUBY_VERSION_MINOR ${RUBY_VERSION_MINOR} CACHE PATH "The Ruby minor version" FORCE) set(RUBY_VERSION_MINOR ${RUBY_VERSION_MINOR} CACHE PATH "The Ruby minor version" FORCE)
set(RUBY_VERSION_PATCH ${RUBY_VERSION_PATCH} CACHE PATH "The Ruby patch version" FORCE) set(RUBY_VERSION_PATCH ${RUBY_VERSION_PATCH} CACHE PATH "The Ruby patch version" FORCE)
set(RUBY_ARCH_DIR ${RUBY_ARCH_DIR} CACHE PATH "The Ruby arch dir" FORCE) set(RUBY_ARCH_DIR ${RUBY_ARCH_DIR} CACHE PATH "The Ruby arch dir" FORCE)
set(RUBY_HDR_DIR ${RUBY_HDR_DIR} CACHE PATH "The Ruby header dir (1.9+)" FORCE) set(RUBY_HDR_DIR ${RUBY_HDR_DIR} CACHE PATH "The Ruby header dir (1.9+)" FORCE)
set(RUBY_ARCHHDR_DIR ${RUBY_ARCHHDR_DIR} CACHE PATH "The Ruby arch header dir (2.0+)" FORCE) set(RUBY_ARCHHDR_DIR ${RUBY_ARCHHDR_DIR} CACHE PATH "The Ruby arch header dir (2.0+)" FORCE)
set(RUBY_POSSIBLE_LIB_DIR ${RUBY_POSSIBLE_LIB_DIR} CACHE PATH "The Ruby lib dir" FORCE) set(RUBY_POSSIBLE_LIB_DIR ${RUBY_POSSIBLE_LIB_DIR} CACHE PATH "The Ruby lib dir" FORCE)
set(RUBY_RUBY_LIB_DIR ${RUBY_RUBY_LIB_DIR} CACHE PATH "The Ruby ruby-lib dir" FORCE) set(RUBY_RUBY_LIB_DIR ${RUBY_RUBY_LIB_DIR} CACHE PATH "The Ruby ruby-lib dir" FORCE)
set(RUBY_SITEARCH_DIR ${RUBY_SITEARCH_DIR} CACHE PATH "The Ruby site arch dir" FORCE) set(RUBY_SITEARCH_DIR ${RUBY_SITEARCH_DIR} CACHE PATH "The Ruby site arch dir" FORCE)
set(RUBY_SITELIB_DIR ${RUBY_SITELIB_DIR} CACHE PATH "The Ruby site lib dir" FORCE) set(RUBY_SITELIB_DIR ${RUBY_SITELIB_DIR} CACHE PATH "The Ruby site lib dir" FORCE)
set(RUBY_HAS_VENDOR_RUBY ${RUBY_HAS_VENDOR_RUBY} CACHE BOOL "Vendor Ruby is available" FORCE) set(RUBY_HAS_VENDOR_RUBY ${RUBY_HAS_VENDOR_RUBY} CACHE BOOL "Vendor Ruby is available" FORCE)
set(RUBY_VENDORARCH_DIR ${RUBY_VENDORARCH_DIR} CACHE PATH "The Ruby vendor arch dir" FORCE) set(RUBY_VENDORARCH_DIR ${RUBY_VENDORARCH_DIR} CACHE PATH "The Ruby vendor arch dir" FORCE)
set(RUBY_VENDORLIB_DIR ${RUBY_VENDORLIB_DIR} CACHE PATH "The Ruby vendor lib dir" FORCE) set(RUBY_VENDORLIB_DIR ${RUBY_VENDORLIB_DIR} CACHE PATH "The Ruby vendor lib dir" FORCE)
mark_as_advanced( mark_as_advanced(
RUBY_ARCH_DIR RUBY_ARCH_DIR
RUBY_ARCH RUBY_ARCH
RUBY_HDR_DIR RUBY_HDR_DIR
RUBY_ARCHHDR_DIR RUBY_ARCHHDR_DIR
RUBY_POSSIBLE_LIB_DIR RUBY_POSSIBLE_LIB_DIR
RUBY_RUBY_LIB_DIR RUBY_RUBY_LIB_DIR
RUBY_SITEARCH_DIR RUBY_SITEARCH_DIR
RUBY_SITELIB_DIR RUBY_SITELIB_DIR
RUBY_HAS_VENDOR_RUBY RUBY_HAS_VENDOR_RUBY
RUBY_VENDORARCH_DIR RUBY_VENDORARCH_DIR
RUBY_VENDORLIB_DIR RUBY_VENDORLIB_DIR
RUBY_VERSION_MAJOR RUBY_VERSION_MAJOR
RUBY_VERSION_MINOR RUBY_VERSION_MINOR
RUBY_VERSION_PATCH RUBY_VERSION_PATCH
) )
endif() endif()
# In case RUBY_EXECUTABLE could not be executed (e.g. cross compiling) # In case RUBY_EXECUTABLE could not be executed (e.g. cross compiling)
# try to detect which version we found. This is not too good. # try to detect which version we found. This is not too good.
if(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR) if(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR)
# by default assume 1.8.0 # by default assume 1.8.0
set(RUBY_VERSION_MAJOR 1) set(RUBY_VERSION_MAJOR 1)
set(RUBY_VERSION_MINOR 8) set(RUBY_VERSION_MINOR 8)
set(RUBY_VERSION_PATCH 0) set(RUBY_VERSION_PATCH 0)
# check whether we found 1.9.x # check whether we found 1.9.x
if(${RUBY_EXECUTABLE} MATCHES "ruby1\\.?9") if(${RUBY_EXECUTABLE} MATCHES "ruby1\\.?9")
set(RUBY_VERSION_MAJOR 1) set(RUBY_VERSION_MAJOR 1)
set(RUBY_VERSION_MINOR 9) set(RUBY_VERSION_MINOR 9)
endif() endif()
# check whether we found 2.0.x # check whether we found 2.0.x
if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?0") if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?0")
set(RUBY_VERSION_MAJOR 2) set(RUBY_VERSION_MAJOR 2)
set(RUBY_VERSION_MINOR 0) set(RUBY_VERSION_MINOR 0)
endif() endif()
# check whether we found 2.1.x # check whether we found 2.1.x
if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?1") if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?1")
set(RUBY_VERSION_MAJOR 2) set(RUBY_VERSION_MAJOR 2)
set(RUBY_VERSION_MINOR 1) set(RUBY_VERSION_MINOR 1)
endif() endif()
# check whether we found 2.2.x # check whether we found 2.2.x
if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?2") if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?2")
set(RUBY_VERSION_MAJOR 2) set(RUBY_VERSION_MAJOR 2)
set(RUBY_VERSION_MINOR 2) set(RUBY_VERSION_MINOR 2)
endif() endif()
# check whether we found 2.3.x # check whether we found 2.3.x
if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?3") if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?3")
set(RUBY_VERSION_MAJOR 2) set(RUBY_VERSION_MAJOR 2)
set(RUBY_VERSION_MINOR 3) set(RUBY_VERSION_MINOR 3)
endif() endif()
# check whether we found 2.4.x # check whether we found 2.4.x
if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?4") if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?4")
set(RUBY_VERSION_MAJOR 2) set(RUBY_VERSION_MAJOR 2)
set(RUBY_VERSION_MINOR 4) set(RUBY_VERSION_MINOR 4)
endif() endif()
endif() endif()
if(RUBY_VERSION_MAJOR) if(RUBY_VERSION_MAJOR)
set(RUBY_VERSION "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_PATCH}") set(RUBY_VERSION "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_PATCH}")
set(_RUBY_VERSION_SHORT "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}") set(_RUBY_VERSION_SHORT "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}")
set(_RUBY_VERSION_SHORT_NODOT "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}") set(_RUBY_VERSION_SHORT_NODOT "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}")
set(_RUBY_NODOT_VERSION "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}${RUBY_VERSION_PATCH}") set(_RUBY_NODOT_VERSION "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}${RUBY_VERSION_PATCH}")
endif() endif()
find_path(RUBY_INCLUDE_DIR find_path(RUBY_INCLUDE_DIR
NAMES ruby.h NAMES ruby.h
HINTS HINTS
${RUBY_HDR_DIR} ${RUBY_HDR_DIR}
${RUBY_ARCH_DIR} ${RUBY_ARCH_DIR}
/usr/lib/ruby/${_RUBY_VERSION_SHORT}/i586-linux-gnu/ ) /usr/lib/ruby/${_RUBY_VERSION_SHORT}/i586-linux-gnu/
)
set(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIR} ) set(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIR} )
# if ruby > 1.8 is required or if ruby > 1.8 was found, search for the config.h dir # if ruby > 1.8 is required or if ruby > 1.8 was found, search for the config.h dir
if( "${Ruby_FIND_VERSION_SHORT_NODOT}" GREATER 18 OR "${_RUBY_VERSION_SHORT_NODOT}" GREATER 18 OR RUBY_HDR_DIR) if( "${Ruby_FIND_VERSION_SHORT_NODOT}" GREATER 18 OR "${_RUBY_VERSION_SHORT_NODOT}" GREATER 18 OR RUBY_HDR_DIR)
find_path(RUBY_CONFIG_INCLUDE_DIR find_path(RUBY_CONFIG_INCLUDE_DIR
NAMES ruby/config.h config.h NAMES ruby/config.h config.h
HINTS HINTS
${RUBY_HDR_DIR}/${RUBY_ARCH} ${RUBY_HDR_DIR}/${RUBY_ARCH}
${RUBY_ARCH_DIR} ${RUBY_ARCH_DIR}
${RUBY_ARCHHDR_DIR} ${RUBY_ARCHHDR_DIR}
) )
set(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIRS} ${RUBY_CONFIG_INCLUDE_DIR} ) set(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIRS} ${RUBY_CONFIG_INCLUDE_DIR} )
endif() endif()
@@ -225,33 +226,33 @@ endif()
set(_RUBY_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_RUBY_VERSION_SHORT} ruby${_RUBY_VERSION_SHORT_NODOT} ruby-${_RUBY_VERSION_SHORT} ruby-${RUBY_VERSION}) set(_RUBY_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_RUBY_VERSION_SHORT} ruby${_RUBY_VERSION_SHORT_NODOT} ruby-${_RUBY_VERSION_SHORT} ruby-${RUBY_VERSION})
if(WIN32) if(WIN32)
set( _RUBY_MSVC_RUNTIME "" ) set( _RUBY_MSVC_RUNTIME "" )
if( MSVC_VERSION EQUAL 1200 ) if( MSVC_VERSION EQUAL 1200 )
set( _RUBY_MSVC_RUNTIME "60" ) set( _RUBY_MSVC_RUNTIME "60" )
endif() endif()
if( MSVC_VERSION EQUAL 1300 ) if( MSVC_VERSION EQUAL 1300 )
set( _RUBY_MSVC_RUNTIME "70" ) set( _RUBY_MSVC_RUNTIME "70" )
endif() endif()
if( MSVC_VERSION EQUAL 1310 ) if( MSVC_VERSION EQUAL 1310 )
set( _RUBY_MSVC_RUNTIME "71" ) set( _RUBY_MSVC_RUNTIME "71" )
endif() endif()
if( MSVC_VERSION EQUAL 1400 ) if( MSVC_VERSION EQUAL 1400 )
set( _RUBY_MSVC_RUNTIME "80" ) set( _RUBY_MSVC_RUNTIME "80" )
endif() endif()
if( MSVC_VERSION EQUAL 1500 ) if( MSVC_VERSION EQUAL 1500 )
set( _RUBY_MSVC_RUNTIME "90" ) set( _RUBY_MSVC_RUNTIME "90" )
endif() endif()
set(_RUBY_ARCH_PREFIX "") set(_RUBY_ARCH_PREFIX "")
if(CMAKE_SIZEOF_VOID_P EQUAL 8) if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_RUBY_ARCH_PREFIX "x64-") set(_RUBY_ARCH_PREFIX "x64-")
endif() endif()
list(APPEND _RUBY_POSSIBLE_LIB_NAMES list(APPEND _RUBY_POSSIBLE_LIB_NAMES
"${_RUBY_ARCH_PREFIX}msvcr${_RUBY_MSVC_RUNTIME}-ruby${_RUBY_NODOT_VERSION}" "${_RUBY_ARCH_PREFIX}msvcr${_RUBY_MSVC_RUNTIME}-ruby${_RUBY_NODOT_VERSION}"
"${_RUBY_ARCH_PREFIX}msvcr${_RUBY_MSVC_RUNTIME}-ruby${_RUBY_NODOT_VERSION}-static" "${_RUBY_ARCH_PREFIX}msvcr${_RUBY_MSVC_RUNTIME}-ruby${_RUBY_NODOT_VERSION}-static"
"${_RUBY_ARCH_PREFIX}msvcrt-ruby${_RUBY_NODOT_VERSION}" "${_RUBY_ARCH_PREFIX}msvcrt-ruby${_RUBY_NODOT_VERSION}"
"${_RUBY_ARCH_PREFIX}msvcrt-ruby${_RUBY_NODOT_VERSION}-static" ) "${_RUBY_ARCH_PREFIX}msvcrt-ruby${_RUBY_NODOT_VERSION}-static" )
endif() endif()
find_library(RUBY_LIBRARY NAMES ${_RUBY_POSSIBLE_LIB_NAMES} HINTS ${RUBY_POSSIBLE_LIB_DIR} ) find_library(RUBY_LIBRARY NAMES ${_RUBY_POSSIBLE_LIB_NAMES} HINTS ${RUBY_POSSIBLE_LIB_DIR} )
@@ -259,23 +260,23 @@ find_library(RUBY_LIBRARY NAMES ${_RUBY_POSSIBLE_LIB_NAMES} HINTS ${RUBY_POSSIBL
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
set(_RUBY_REQUIRED_VARS RUBY_EXECUTABLE RUBY_INCLUDE_DIR RUBY_LIBRARY) set(_RUBY_REQUIRED_VARS RUBY_EXECUTABLE RUBY_INCLUDE_DIR RUBY_LIBRARY)
if(_RUBY_VERSION_SHORT_NODOT GREATER 18) if(_RUBY_VERSION_SHORT_NODOT GREATER 18)
list(APPEND _RUBY_REQUIRED_VARS RUBY_CONFIG_INCLUDE_DIR) list(APPEND _RUBY_REQUIRED_VARS RUBY_CONFIG_INCLUDE_DIR)
endif() endif()
if(_RUBY_DEBUG_OUTPUT) if(_RUBY_DEBUG_OUTPUT)
message(STATUS "--------FindRuby.cmake debug------------") message(STATUS "--------FindRuby.cmake debug------------")
message(STATUS "_RUBY_POSSIBLE_EXECUTABLE_NAMES: ${_RUBY_POSSIBLE_EXECUTABLE_NAMES}") message(STATUS "_RUBY_POSSIBLE_EXECUTABLE_NAMES: ${_RUBY_POSSIBLE_EXECUTABLE_NAMES}")
message(STATUS "_RUBY_POSSIBLE_LIB_NAMES: ${_RUBY_POSSIBLE_LIB_NAMES}") message(STATUS "_RUBY_POSSIBLE_LIB_NAMES: ${_RUBY_POSSIBLE_LIB_NAMES}")
message(STATUS "RUBY_ARCH_DIR: ${RUBY_ARCH_DIR}") message(STATUS "RUBY_ARCH_DIR: ${RUBY_ARCH_DIR}")
message(STATUS "RUBY_HDR_DIR: ${RUBY_HDR_DIR}") message(STATUS "RUBY_HDR_DIR: ${RUBY_HDR_DIR}")
message(STATUS "RUBY_POSSIBLE_LIB_DIR: ${RUBY_POSSIBLE_LIB_DIR}") message(STATUS "RUBY_POSSIBLE_LIB_DIR: ${RUBY_POSSIBLE_LIB_DIR}")
message(STATUS "Found RUBY_VERSION: \"${RUBY_VERSION}\" , short: \"${_RUBY_VERSION_SHORT}\", nodot: \"${_RUBY_VERSION_SHORT_NODOT}\"") message(STATUS "Found RUBY_VERSION: \"${RUBY_VERSION}\" , short: \"${_RUBY_VERSION_SHORT}\", nodot: \"${_RUBY_VERSION_SHORT_NODOT}\"")
message(STATUS "_RUBY_REQUIRED_VARS: ${_RUBY_REQUIRED_VARS}") message(STATUS "_RUBY_REQUIRED_VARS: ${_RUBY_REQUIRED_VARS}")
message(STATUS "RUBY_EXECUTABLE: ${RUBY_EXECUTABLE}") message(STATUS "RUBY_EXECUTABLE: ${RUBY_EXECUTABLE}")
message(STATUS "RUBY_LIBRARY: ${RUBY_LIBRARY}") message(STATUS "RUBY_LIBRARY: ${RUBY_LIBRARY}")
message(STATUS "RUBY_INCLUDE_DIR: ${RUBY_INCLUDE_DIR}") message(STATUS "RUBY_INCLUDE_DIR: ${RUBY_INCLUDE_DIR}")
message(STATUS "RUBY_CONFIG_INCLUDE_DIR: ${RUBY_CONFIG_INCLUDE_DIR}") message(STATUS "RUBY_CONFIG_INCLUDE_DIR: ${RUBY_CONFIG_INCLUDE_DIR}")
message(STATUS "--------------------") message(STATUS "--------------------")
endif() endif()
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ruby REQUIRED_VARS ${_RUBY_REQUIRED_VARS} FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ruby REQUIRED_VARS ${_RUBY_REQUIRED_VARS}

View File

@@ -152,202 +152,199 @@ if(SDL_FOUND AND SDL_SOUND_INCLUDE_DIR AND SDL_SOUND_LIBRARY)
SDL_Quit(); SDL_Quit();
return 0; return 0;
}" }"
) )
# Calling # Calling
# target_link_libraries(DetermineSoundLibs "${SDL_SOUND_LIBRARY} ${SDL_LIBRARY}) # target_link_libraries(DetermineSoundLibs "${SDL_SOUND_LIBRARY} ${SDL_LIBRARY})
# causes problems when SDL_LIBRARY looks like # causes problems when SDL_LIBRARY looks like
# /Library/Frameworks/SDL.framework;-framework Cocoa # /Library/Frameworks/SDL.framework;-framework Cocoa
# The ;-framework Cocoa seems to be confusing CMake once the OS X # The ;-framework Cocoa seems to be confusing CMake once the OS X
# framework support was added. I was told that breaking up the list # framework support was added. I was told that breaking up the list
# would fix the problem. # would fix the problem.
set(TMP_TRY_LIBS) set(TMP_TRY_LIBS)
foreach(lib ${SDL_SOUND_LIBRARY} ${SDL_LIBRARY}) foreach(lib ${SDL_SOUND_LIBRARY} ${SDL_LIBRARY})
string(APPEND TMP_TRY_LIBS " \"${lib}\"") string(APPEND TMP_TRY_LIBS " \"${lib}\"")
endforeach() endforeach()
# message("TMP_TRY_LIBS ${TMP_TRY_LIBS}")
# Write the CMakeLists.txt and test project
# Weird, this is still sketchy. If I don't quote the variables
# in the TARGET_LINK_LIBRARIES, I seem to loose everything
# in the SDL_LIBRARY string after the "-framework".
# But if I quote the stuff in INCLUDE_DIRECTORIES, it doesn't work.
file(WRITE ${PROJECT_BINARY_DIR}/CMakeTmp/CMakeLists.txt
"cmake_minimum_required(VERSION ${CMAKE_VERSION})
project(DetermineSoundLibs)
include_directories(${SDL_INCLUDE_DIR} ${SDL_SOUND_INCLUDE_DIR})
add_executable(DetermineSoundLibs DetermineSoundLibs.c)
target_link_libraries(DetermineSoundLibs ${TMP_TRY_LIBS})"
)
try_compile(
MY_RESULT
${PROJECT_BINARY_DIR}/CMakeTmp
${PROJECT_BINARY_DIR}/CMakeTmp
DetermineSoundLibs
OUTPUT_VARIABLE MY_OUTPUT
)
# message("${MY_RESULT}")
# message(${MY_OUTPUT})
if(NOT MY_RESULT)
# I expect that MPGLIB, VOC, WAV, AIFF, and SHN are compiled in statically.
# I think Timidity is also compiled in statically.
# I've never had to explcitly link against Quicktime, so I'll skip that for now.
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARY})
# Find MikMod
if("${MY_OUTPUT}" MATCHES "MikMod_")
find_library(MIKMOD_LIBRARY
NAMES libmikmod-coreaudio mikmod
PATHS
ENV MIKMODDIR
ENV SDLSOUNDDIR
ENV SDLDIR
/opt
PATH_SUFFIXES
lib
)
if(MIKMOD_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MIKMOD_LIBRARY})
endif(MIKMOD_LIBRARY)
endif("${MY_OUTPUT}" MATCHES "MikMod_")
# Find ModPlug
if("${MY_OUTPUT}" MATCHES "MODPLUG_")
find_library(MODPLUG_LIBRARY
NAMES modplug
PATHS
ENV MODPLUGDIR
ENV SDLSOUNDDIR
ENV SDLDIR
/opt
PATH_SUFFIXES
lib
)
if(MODPLUG_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MODPLUG_LIBRARY})
endif()
endif()
# Find Ogg and Vorbis # Write the CMakeLists.txt and test project
if("${MY_OUTPUT}" MATCHES "ov_") # Weird, this is still sketchy. If I don't quote the variables
find_library(VORBIS_LIBRARY # in the TARGET_LINK_LIBRARIES, I seem to loose everything
NAMES vorbis Vorbis VORBIS # in the SDL_LIBRARY string after the "-framework".
PATHS # But if I quote the stuff in INCLUDE_DIRECTORIES, it doesn't work.
ENV VORBISDIR file(WRITE ${PROJECT_BINARY_DIR}/CMakeTmp/CMakeLists.txt
ENV OGGDIR "cmake_minimum_required(VERSION ${CMAKE_VERSION})
ENV SDLSOUNDDIR project(DetermineSoundLibs)
ENV SDLDIR include_directories(${SDL_INCLUDE_DIR} ${SDL_SOUND_INCLUDE_DIR})
/opt add_executable(DetermineSoundLibs DetermineSoundLibs.c)
PATH_SUFFIXES target_link_libraries(DetermineSoundLibs ${TMP_TRY_LIBS})"
lib )
try_compile(
MY_RESULT
${PROJECT_BINARY_DIR}/CMakeTmp
${PROJECT_BINARY_DIR}/CMakeTmp
DetermineSoundLibs
OUTPUT_VARIABLE MY_OUTPUT
)
if(NOT MY_RESULT)
# I expect that MPGLIB, VOC, WAV, AIFF, and SHN are compiled in statically.
# I think Timidity is also compiled in statically.
# I've never had to explcitly link against Quicktime, so I'll skip that for now.
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARY})
# Find MikMod
if("${MY_OUTPUT}" MATCHES "MikMod_")
find_library(MIKMOD_LIBRARY
NAMES libmikmod-coreaudio mikmod
PATHS
ENV MIKMODDIR
ENV SDLSOUNDDIR
ENV SDLDIR
/opt
PATH_SUFFIXES
lib
)
if(MIKMOD_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MIKMOD_LIBRARY})
endif(MIKMOD_LIBRARY)
endif("${MY_OUTPUT}" MATCHES "MikMod_")
# Find ModPlug
if("${MY_OUTPUT}" MATCHES "MODPLUG_")
find_library(MODPLUG_LIBRARY
NAMES modplug
PATHS
ENV MODPLUGDIR
ENV SDLSOUNDDIR
ENV SDLDIR
/opt
PATH_SUFFIXES
lib
)
if(MODPLUG_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MODPLUG_LIBRARY})
endif()
endif()
# Find Ogg and Vorbis
if("${MY_OUTPUT}" MATCHES "ov_")
find_library(VORBIS_LIBRARY
NAMES vorbis Vorbis VORBIS
PATHS
ENV VORBISDIR
ENV OGGDIR
ENV SDLSOUNDDIR
ENV SDLDIR
/opt
PATH_SUFFIXES
lib
)
if(VORBIS_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${VORBIS_LIBRARY})
endif()
find_library(OGG_LIBRARY
NAMES ogg Ogg OGG
PATHS
ENV OGGDIR
ENV VORBISDIR
ENV SDLSOUNDDIR
ENV SDLDIR
/opt
PATH_SUFFIXES
lib
) )
if(VORBIS_LIBRARY) if(OGG_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${VORBIS_LIBRARY}) set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY})
endif() endif()
endif()
find_library(OGG_LIBRARY
NAMES ogg Ogg OGG
PATHS
ENV OGGDIR
ENV VORBISDIR
ENV SDLSOUNDDIR
ENV SDLDIR
/opt
PATH_SUFFIXES
lib
)
if(OGG_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY})
endif()
endif()
# Find SMPEG # Find SMPEG
if("${MY_OUTPUT}" MATCHES "SMPEG_") if("${MY_OUTPUT}" MATCHES "SMPEG_")
find_library(SMPEG_LIBRARY find_library(SMPEG_LIBRARY
NAMES smpeg SMPEG Smpeg SMpeg NAMES smpeg SMPEG Smpeg SMpeg
PATHS PATHS
ENV SMPEGDIR ENV SMPEGDIR
ENV SDLSOUNDDIR ENV SDLSOUNDDIR
ENV SDLDIR ENV SDLDIR
/opt /opt
PATH_SUFFIXES PATH_SUFFIXES
lib lib
) )
if(SMPEG_LIBRARY) if(SMPEG_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SMPEG_LIBRARY}) set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SMPEG_LIBRARY})
endif() endif()
endif() endif()
# Find FLAC # Find FLAC
if("${MY_OUTPUT}" MATCHES "FLAC_") if("${MY_OUTPUT}" MATCHES "FLAC_")
find_library(FLAC_LIBRARY find_library(FLAC_LIBRARY
NAMES flac FLAC NAMES flac FLAC
PATHS PATHS
ENV FLACDIR ENV FLACDIR
ENV SDLSOUNDDIR ENV SDLSOUNDDIR
ENV SDLDIR ENV SDLDIR
/opt /opt
PATH_SUFFIXES PATH_SUFFIXES
lib lib
) )
if(FLAC_LIBRARY) if(FLAC_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${FLAC_LIBRARY}) set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${FLAC_LIBRARY})
endif() endif()
endif() endif()
# Hmmm...Speex seems to depend on Ogg. This might be a problem if # Hmmm...Speex seems to depend on Ogg. This might be a problem if
# the TRY_COMPILE attempt gets blocked at SPEEX before it can pull # the TRY_COMPILE attempt gets blocked at SPEEX before it can pull
# in the Ogg symbols. I'm not sure if I should duplicate the ogg stuff # in the Ogg symbols. I'm not sure if I should duplicate the ogg stuff
# above for here or if two ogg entries will screw up things. # above for here or if two ogg entries will screw up things.
if("${MY_OUTPUT}" MATCHES "speex_") if("${MY_OUTPUT}" MATCHES "speex_")
find_library(SPEEX_LIBRARY find_library(SPEEX_LIBRARY
NAMES speex SPEEX NAMES speex SPEEX
PATHS PATHS
ENV SPEEXDIR ENV SPEEXDIR
ENV SDLSOUNDDIR ENV SDLSOUNDDIR
ENV SDLDIR ENV SDLDIR
/opt /opt
PATH_SUFFIXES PATH_SUFFIXES
lib lib
) )
if(SPEEX_LIBRARY) if(SPEEX_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SPEEX_LIBRARY}) set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SPEEX_LIBRARY})
endif() endif()
# Find OGG (needed for Speex) # Find OGG (needed for Speex)
# We might have already found Ogg for Vorbis, so skip it if so. # We might have already found Ogg for Vorbis, so skip it if so.
if(NOT OGG_LIBRARY) if(NOT OGG_LIBRARY)
find_library(OGG_LIBRARY find_library(OGG_LIBRARY
NAMES ogg Ogg OGG NAMES ogg Ogg OGG
PATHS PATHS
ENV OGGDIR ENV OGGDIR
ENV VORBISDIR ENV VORBISDIR
ENV SPEEXDIR ENV SPEEXDIR
ENV SDLSOUNDDIR ENV SDLSOUNDDIR
ENV SDLDIR ENV SDLDIR
/opt /opt
PATH_SUFFIXES lib PATH_SUFFIXES lib
) )
if(OGG_LIBRARY) if(OGG_LIBRARY)
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY}) set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY})
endif() endif()
endif() endif()
endif() endif()
set(SDL_SOUND_LIBRARIES ${SDL_SOUND_EXTRAS} ${SDL_SOUND_LIBRARIES_TMP}) set(SDL_SOUND_LIBRARIES ${SDL_SOUND_EXTRAS} ${SDL_SOUND_LIBRARIES_TMP})
else() else()
set(SDL_SOUND_LIBRARIES ${SDL_SOUND_EXTRAS} ${SDL_SOUND_LIBRARY}) set(SDL_SOUND_LIBRARIES ${SDL_SOUND_EXTRAS} ${SDL_SOUND_LIBRARY})
endif() endif()
endif() endif()
if(SDL_SOUND_INCLUDE_DIR AND EXISTS "${SDL_SOUND_INCLUDE_DIR}/SDL_sound.h") if(SDL_SOUND_INCLUDE_DIR AND EXISTS "${SDL_SOUND_INCLUDE_DIR}/SDL_sound.h")

View File

@@ -84,11 +84,11 @@ find_program(TCL_TCLSH
) )
if(TCL_TCLSH) if(TCL_TCLSH)
execute_process(COMMAND "${CMAKE_COMMAND}" -E echo puts "\$tcl_version" execute_process(COMMAND "${CMAKE_COMMAND}" -E echo puts "\$tcl_version"
COMMAND "${TCL_TCLSH}" COMMAND "${TCL_TCLSH}"
OUTPUT_VARIABLE TCLSH_VERSION_STRING OUTPUT_VARIABLE TCLSH_VERSION_STRING
ERROR_QUIET ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
endif() endif()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)

View File

@@ -20,19 +20,19 @@ include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
# OSG_FIND_PATH # OSG_FIND_PATH
# #
function(OSG_FIND_PATH module header) function(OSG_FIND_PATH module header)
string(TOUPPER ${module} module_uc) string(TOUPPER ${module} module_uc)
# Try the user's environment request before anything else. # Try the user's environment request before anything else.
find_path(${module_uc}_INCLUDE_DIR ${header} find_path(${module_uc}_INCLUDE_DIR ${header}
HINTS HINTS
ENV ${module_uc}_DIR ENV ${module_uc}_DIR
ENV OSG_DIR ENV OSG_DIR
ENV OSGDIR ENV OSGDIR
ENV OSG_ROOT ENV OSG_ROOT
${${module_uc}_DIR} ${${module_uc}_DIR}
${OSG_DIR} ${OSG_DIR}
PATH_SUFFIXES include PATH_SUFFIXES include
) )
endfunction() endfunction()
@@ -40,38 +40,38 @@ endfunction()
# OSG_FIND_LIBRARY # OSG_FIND_LIBRARY
# #
function(OSG_FIND_LIBRARY module library) function(OSG_FIND_LIBRARY module library)
string(TOUPPER ${module} module_uc) string(TOUPPER ${module} module_uc)
find_library(${module_uc}_LIBRARY_RELEASE find_library(${module_uc}_LIBRARY_RELEASE
NAMES ${library} NAMES ${library}
HINTS HINTS
ENV ${module_uc}_DIR ENV ${module_uc}_DIR
ENV OSG_DIR ENV OSG_DIR
ENV OSGDIR ENV OSGDIR
ENV OSG_ROOT ENV OSG_ROOT
${${module_uc}_DIR} ${${module_uc}_DIR}
${OSG_DIR} ${OSG_DIR}
PATH_SUFFIXES lib PATH_SUFFIXES lib
) )
find_library(${module_uc}_LIBRARY_DEBUG find_library(${module_uc}_LIBRARY_DEBUG
NAMES ${library}d NAMES ${library}d
HINTS HINTS
ENV ${module_uc}_DIR ENV ${module_uc}_DIR
ENV OSG_DIR ENV OSG_DIR
ENV OSGDIR ENV OSGDIR
ENV OSG_ROOT ENV OSG_ROOT
${${module_uc}_DIR} ${${module_uc}_DIR}
${OSG_DIR} ${OSG_DIR}
PATH_SUFFIXES lib PATH_SUFFIXES lib
) )
select_library_configurations(${module_uc}) select_library_configurations(${module_uc})
# the variables set by select_library_configurations go out of scope # the variables set by select_library_configurations go out of scope
# here, so we need to set them again # here, so we need to set them again
set(${module_uc}_LIBRARY ${${module_uc}_LIBRARY} PARENT_SCOPE) set(${module_uc}_LIBRARY ${${module_uc}_LIBRARY} PARENT_SCOPE)
set(${module_uc}_LIBRARIES ${${module_uc}_LIBRARIES} PARENT_SCOPE) set(${module_uc}_LIBRARIES ${${module_uc}_LIBRARIES} PARENT_SCOPE)
endfunction() endfunction()
# #
@@ -79,8 +79,8 @@ endfunction()
# Just a convenience function for calling MARK_AS_ADVANCED # Just a convenience function for calling MARK_AS_ADVANCED
# #
function(OSG_MARK_AS_ADVANCED _module) function(OSG_MARK_AS_ADVANCED _module)
string(TOUPPER ${_module} _module_UC) string(TOUPPER ${_module} _module_UC)
mark_as_advanced(${_module_UC}_INCLUDE_DIR) mark_as_advanced(${_module_UC}_INCLUDE_DIR)
mark_as_advanced(${_module_UC}_LIBRARY) mark_as_advanced(${_module_UC}_LIBRARY)
mark_as_advanced(${_module_UC}_LIBRARY_DEBUG) mark_as_advanced(${_module_UC}_LIBRARY_DEBUG)
endfunction() endfunction()

View File

@@ -26,105 +26,106 @@ include(AddFileDependencies)
#create the kidl and skeletion file for dcop stuff #create the kidl and skeletion file for dcop stuff
#usage: KDE_ADD_COP_SKELS(foo_SRCS ${dcop_headers}) #usage: KDE_ADD_COP_SKELS(foo_SRCS ${dcop_headers})
macro(KDE3_ADD_DCOP_SKELS _sources) macro(KDE3_ADD_DCOP_SKELS _sources)
foreach (_current_FILE ${ARGN}) foreach (_current_FILE ${ARGN})
get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE) get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE)
get_filename_component(_basename ${_tmp_FILE} NAME_WE) get_filename_component(_basename ${_tmp_FILE} NAME_WE)
set(_skel ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel.cpp) set(_skel ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel.cpp)
set(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl) set(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl)
if (NOT HAVE_${_basename}_KIDL_RULE) if (NOT HAVE_${_basename}_KIDL_RULE)
set(HAVE_${_basename}_KIDL_RULE ON) set(HAVE_${_basename}_KIDL_RULE ON)
add_custom_command(OUTPUT ${_kidl} add_custom_command(OUTPUT ${_kidl}
COMMAND ${KDE3_DCOPIDL_EXECUTABLE} COMMAND ${KDE3_DCOPIDL_EXECUTABLE}
ARGS ${_tmp_FILE} > ${_kidl} ARGS ${_tmp_FILE} > ${_kidl}
DEPENDS ${_tmp_FILE} DEPENDS ${_tmp_FILE}
) )
endif () endif ()
if (NOT HAVE_${_basename}_SKEL_RULE) if (NOT HAVE_${_basename}_SKEL_RULE)
set(HAVE_${_basename}_SKEL_RULE ON) set(HAVE_${_basename}_SKEL_RULE ON)
add_custom_command(OUTPUT ${_skel} add_custom_command(OUTPUT ${_skel}
COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE} COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE}
ARGS --c++-suffix cpp --no-signals --no-stub ${_kidl} ARGS --c++-suffix cpp --no-signals --no-stub ${_kidl}
DEPENDS ${_kidl} DEPENDS ${_kidl}
) )
endif () endif ()
set(${_sources} ${${_sources}} ${_skel}) set(${_sources} ${${_sources}} ${_skel})
endforeach () endforeach ()
endmacro() endmacro()
macro(KDE3_ADD_DCOP_STUBS _sources) macro(KDE3_ADD_DCOP_STUBS _sources)
foreach (_current_FILE ${ARGN}) foreach (_current_FILE ${ARGN})
get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE) get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE)
get_filename_component(_basename ${_tmp_FILE} NAME_WE) get_filename_component(_basename ${_tmp_FILE} NAME_WE)
set(_stub_CPP ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.cpp) set(_stub_CPP ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.cpp)
set(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl) set(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl)
if (NOT HAVE_${_basename}_KIDL_RULE) if (NOT HAVE_${_basename}_KIDL_RULE)
set(HAVE_${_basename}_KIDL_RULE ON) set(HAVE_${_basename}_KIDL_RULE ON)
add_custom_command(OUTPUT ${_kidl} add_custom_command(OUTPUT ${_kidl}
COMMAND ${KDE3_DCOPIDL_EXECUTABLE} COMMAND ${KDE3_DCOPIDL_EXECUTABLE}
ARGS ${_tmp_FILE} > ${_kidl} ARGS ${_tmp_FILE} > ${_kidl}
DEPENDS ${_tmp_FILE} DEPENDS ${_tmp_FILE}
) )
endif () endif ()
if (NOT HAVE_${_basename}_STUB_RULE) if (NOT HAVE_${_basename}_STUB_RULE)
set(HAVE_${_basename}_STUB_RULE ON) set(HAVE_${_basename}_STUB_RULE ON)
add_custom_command(OUTPUT ${_stub_CPP} add_custom_command(OUTPUT ${_stub_CPP}
COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE} COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE}
ARGS --c++-suffix cpp --no-signals --no-skel ${_kidl} ARGS --c++-suffix cpp --no-signals --no-skel ${_kidl}
DEPENDS ${_kidl} DEPENDS ${_kidl}
) )
endif () endif ()
set(${_sources} ${${_sources}} ${_stub_CPP}) set(${_sources} ${${_sources}} ${_stub_CPP})
endforeach () endforeach ()
endmacro() endmacro()
macro(KDE3_ADD_KCFG_FILES _sources) macro(KDE3_ADD_KCFG_FILES _sources)
foreach (_current_FILE ${ARGN}) foreach (_current_FILE ${ARGN})
get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE) get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE)
get_filename_component(_basename ${_tmp_FILE} NAME_WE) get_filename_component(_basename ${_tmp_FILE} NAME_WE)
file(READ ${_tmp_FILE} _contents) file(READ ${_tmp_FILE} _contents)
string(REGEX REPLACE "^(.*\n)?File=([^\n]+)\n.*$" "\\2" _kcfg_FILE "${_contents}") string(REGEX REPLACE "^(.*\n)?File=([^\n]+)\n.*$" "\\2" _kcfg_FILE "${_contents}")
set(_src_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) set(_src_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp)
set(_header_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) set(_header_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h)
add_custom_command(OUTPUT ${_src_FILE} add_custom_command(OUTPUT ${_src_FILE}
COMMAND ${KDE3_KCFGC_EXECUTABLE} COMMAND ${KDE3_KCFGC_EXECUTABLE}
ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${_kcfg_FILE} ${_tmp_FILE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${_kcfg_FILE} ${_tmp_FILE}
DEPENDS ${_tmp_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${_kcfg_FILE} ) DEPENDS ${_tmp_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${_kcfg_FILE}
)
set(${_sources} ${${_sources}} ${_src_FILE}) set(${_sources} ${${_sources}} ${_src_FILE})
endforeach () endforeach ()
endmacro() endmacro()
@@ -132,22 +133,22 @@ endmacro()
#create the moc files and add them to the list of sources #create the moc files and add them to the list of sources
#usage: KDE_ADD_MOC_FILES(foo_SRCS ${moc_headers}) #usage: KDE_ADD_MOC_FILES(foo_SRCS ${moc_headers})
macro(KDE3_ADD_MOC_FILES _sources) macro(KDE3_ADD_MOC_FILES _sources)
foreach (_current_FILE ${ARGN}) foreach (_current_FILE ${ARGN})
get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE) get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE)
get_filename_component(_basename ${_tmp_FILE} NAME_WE) get_filename_component(_basename ${_tmp_FILE} NAME_WE)
set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp)
add_custom_command(OUTPUT ${_moc} add_custom_command(OUTPUT ${_moc}
COMMAND ${QT_MOC_EXECUTABLE} COMMAND ${QT_MOC_EXECUTABLE}
ARGS ${_tmp_FILE} -o ${_moc} ARGS ${_tmp_FILE} -o ${_moc}
DEPENDS ${_tmp_FILE} DEPENDS ${_tmp_FILE}
) )
set(${_sources} ${${_sources}} ${_moc}) set(${_sources} ${${_sources}} ${_moc})
endforeach () endforeach ()
endmacro() endmacro()
@@ -156,186 +157,186 @@ get_filename_component( KDE3_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
#create the implementation files from the ui files and add them to the list of sources #create the implementation files from the ui files and add them to the list of sources
#usage: KDE_ADD_UI_FILES(foo_SRCS ${ui_files}) #usage: KDE_ADD_UI_FILES(foo_SRCS ${ui_files})
macro(KDE3_ADD_UI_FILES _sources ) macro(KDE3_ADD_UI_FILES _sources )
foreach (_current_FILE ${ARGN}) foreach (_current_FILE ${ARGN})
get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE) get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE)
get_filename_component(_basename ${_tmp_FILE} NAME_WE) get_filename_component(_basename ${_tmp_FILE} NAME_WE)
set(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) set(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h)
set(_src ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) set(_src ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp)
set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp)
add_custom_command(OUTPUT ${_header} add_custom_command(OUTPUT ${_header}
COMMAND ${QT_UIC_EXECUTABLE} COMMAND ${QT_UIC_EXECUTABLE}
ARGS -L ${KDE3_LIB_DIR}/kde3/plugins/designer -nounload -o ${_header} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} ARGS -L ${KDE3_LIB_DIR}/kde3/plugins/designer -nounload -o ${_header} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}
DEPENDS ${_tmp_FILE} DEPENDS ${_tmp_FILE}
) )
add_custom_command(OUTPUT ${_src} add_custom_command(OUTPUT ${_src}
COMMAND ${CMAKE_COMMAND} COMMAND ${CMAKE_COMMAND}
ARGS ARGS
-DKDE_UIC_PLUGIN_DIR:FILEPATH=${KDE3_LIB_DIR}/kde3/plugins/designer -DKDE_UIC_PLUGIN_DIR:FILEPATH=${KDE3_LIB_DIR}/kde3/plugins/designer
-DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC_EXECUTABLE} -DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC_EXECUTABLE}
-DKDE_UIC_FILE:FILEPATH=${_tmp_FILE} -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE}
-DKDE_UIC_CPP_FILE:FILEPATH=${_src} -DKDE_UIC_CPP_FILE:FILEPATH=${_src}
-DKDE_UIC_H_FILE:FILEPATH=${_header} -DKDE_UIC_H_FILE:FILEPATH=${_header}
-P ${KDE3_MODULE_DIR}/kde3uic.cmake -P ${KDE3_MODULE_DIR}/kde3uic.cmake
DEPENDS ${_header} DEPENDS ${_header}
) )
add_custom_command(OUTPUT ${_moc} add_custom_command(OUTPUT ${_moc}
COMMAND ${QT_MOC_EXECUTABLE} COMMAND ${QT_MOC_EXECUTABLE}
ARGS ${_header} -o ${_moc} ARGS ${_header} -o ${_moc}
DEPENDS ${_header} DEPENDS ${_header}
) )
set(${_sources} ${${_sources}} ${_src} ${_moc} ) set(${_sources} ${${_sources}} ${_src} ${_moc} )
endforeach () endforeach ()
endmacro() endmacro()
macro(KDE3_AUTOMOC) macro(KDE3_AUTOMOC)
set(_matching_FILES ) set(_matching_FILES )
foreach (_current_FILE ${ARGN}) foreach (_current_FILE ${ARGN})
get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE) get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
# if "SKIP_AUTOMOC" is set to true, we will not handle this file here. # if "SKIP_AUTOMOC" is set to true, we will not handle this file here.
# here. this is required to make bouic work correctly: # here. this is required to make bouic work correctly:
# we need to add generated .cpp files to the sources (to compile them), # we need to add generated .cpp files to the sources (to compile them),
# but we cannot let automoc handle them, as the .cpp files don't exist yet when # but we cannot let automoc handle them, as the .cpp files don't exist yet when
# cmake is run for the very first time on them -> however the .cpp files might # cmake is run for the very first time on them -> however the .cpp files might
# exist at a later run. at that time we need to skip them, so that we don't add two # exist at a later run. at that time we need to skip them, so that we don't add two
# different rules for the same moc file # different rules for the same moc file
get_source_file_property(_skip ${_abs_FILE} SKIP_AUTOMOC) get_source_file_property(_skip ${_abs_FILE} SKIP_AUTOMOC)
if (EXISTS ${_abs_FILE} AND NOT _skip) if (EXISTS ${_abs_FILE} AND NOT _skip)
file(STRINGS ${_abs_FILE} _match REGEX "#include +[^ ]+\\.moc[\">]") file(STRINGS ${_abs_FILE} _match REGEX "#include +[^ ]+\\.moc[\">]")
get_filename_component(_abs_PATH ${_abs_FILE} PATH) get_filename_component(_abs_PATH ${_abs_FILE} PATH)
foreach (_current_MOC_INC IN LISTS _match) foreach (_current_MOC_INC IN LISTS _match)
string(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}") string(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}")
get_filename_component(_basename ${_current_MOC} NAME_WE) get_filename_component(_basename ${_current_MOC} NAME_WE)
# set(_header ${CMAKE_CURRENT_SOURCE_DIR}/${_basename}.h) # set(_header ${CMAKE_CURRENT_SOURCE_DIR}/${_basename}.h)
set(_header ${_abs_PATH}/${_basename}.h) set(_header ${_abs_PATH}/${_basename}.h)
set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC}) set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
add_custom_command(OUTPUT ${_moc} add_custom_command(OUTPUT ${_moc}
COMMAND ${QT_MOC_EXECUTABLE} COMMAND ${QT_MOC_EXECUTABLE}
ARGS ${_header} -o ${_moc} ARGS ${_header} -o ${_moc}
DEPENDS ${_header} DEPENDS ${_header}
) )
ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc}) ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc})
endforeach () endforeach ()
unset(_match) unset(_match)
unset(_header) unset(_header)
unset(_moc) unset(_moc)
endif () endif ()
endforeach () endforeach ()
endmacro() endmacro()
# only used internally by KDE3_INSTALL_ICONS # only used internally by KDE3_INSTALL_ICONS
macro (_KDE3_ADD_ICON_INSTALL_RULE _install_SCRIPT _install_PATH _group _orig_NAME _install_NAME) macro (_KDE3_ADD_ICON_INSTALL_RULE _install_SCRIPT _install_PATH _group _orig_NAME _install_NAME)
# if the string doesn't match the pattern, the result is the full string, so all three have the same content # if the string doesn't match the pattern, the result is the full string, so all three have the same content
if (NOT ${_group} STREQUAL ${_install_NAME} ) if (NOT ${_group} STREQUAL ${_install_NAME} )
set(_icon_GROUP "actions") set(_icon_GROUP "actions")
if (${_group} STREQUAL "mime") if (${_group} STREQUAL "mime")
set(_icon_GROUP "mimetypes") set(_icon_GROUP "mimetypes")
endif () endif ()
if (${_group} STREQUAL "filesys") if (${_group} STREQUAL "filesys")
set(_icon_GROUP "filesystems") set(_icon_GROUP "filesystems")
endif () endif ()
if (${_group} STREQUAL "device") if (${_group} STREQUAL "device")
set(_icon_GROUP "devices") set(_icon_GROUP "devices")
endif () endif ()
if (${_group} STREQUAL "app") if (${_group} STREQUAL "app")
set(_icon_GROUP "apps") set(_icon_GROUP "apps")
endif () endif ()
if (${_group} STREQUAL "action") if (${_group} STREQUAL "action")
set(_icon_GROUP "actions") set(_icon_GROUP "actions")
endif () endif ()
# message(STATUS "icon: ${_current_ICON} size: ${_size} group: ${_group} name: ${_name}" ) # message(STATUS "icon: ${_current_ICON} size: ${_size} group: ${_group} name: ${_name}" )
install(FILES ${_orig_NAME} DESTINATION ${_install_PATH}/${_icon_GROUP}/ RENAME ${_install_NAME} ) install(FILES ${_orig_NAME} DESTINATION ${_install_PATH}/${_icon_GROUP}/ RENAME ${_install_NAME} )
endif () endif ()
endmacro () endmacro ()
macro (KDE3_INSTALL_ICONS _theme ) macro (KDE3_INSTALL_ICONS _theme )
set(_defaultpath "${CMAKE_INSTALL_PREFIX}/share/icons") set(_defaultpath "${CMAKE_INSTALL_PREFIX}/share/icons")
# first the png icons # first the png icons
file(GLOB _icons *.png) file(GLOB _icons *.png)
foreach (_current_ICON ${_icons} ) foreach (_current_ICON ${_icons} )
string(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\1" _size "${_current_ICON}") string(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\1" _size "${_current_ICON}")
string(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\2" _group "${_current_ICON}") string(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\2" _group "${_current_ICON}")
string(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\3" _name "${_current_ICON}") string(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\3" _name "${_current_ICON}")
_KDE3_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake _KDE3_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake
${_defaultpath}/${_theme}/${_size}x${_size} ${_defaultpath}/${_theme}/${_size}x${_size}
${_group} ${_current_ICON} ${_name}) ${_group} ${_current_ICON} ${_name})
endforeach () endforeach ()
# and now the svg icons # and now the svg icons
file(GLOB _icons *.svgz) file(GLOB _icons *.svgz)
foreach (_current_ICON ${_icons} ) foreach (_current_ICON ${_icons} )
string(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\1" _group "${_current_ICON}") string(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\1" _group "${_current_ICON}")
string(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\2" _name "${_current_ICON}") string(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\2" _name "${_current_ICON}")
_KDE3_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake _KDE3_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake
${_defaultpath}/${_theme}/scalable ${_defaultpath}/${_theme}/scalable
${_group} ${_current_ICON} ${_name}) ${_group} ${_current_ICON} ${_name})
endforeach () endforeach ()
endmacro () endmacro ()
macro(KDE3_INSTALL_LIBTOOL_FILE _target) macro(KDE3_INSTALL_LIBTOOL_FILE _target)
get_target_property(_target_location ${_target} LOCATION) get_target_property(_target_location ${_target} LOCATION)
get_filename_component(_laname ${_target_location} NAME_WE) get_filename_component(_laname ${_target_location} NAME_WE)
get_filename_component(_soname ${_target_location} NAME) get_filename_component(_soname ${_target_location} NAME)
set(_laname ${CMAKE_CURRENT_BINARY_DIR}/${_laname}.la) set(_laname ${CMAKE_CURRENT_BINARY_DIR}/${_laname}.la)
file(WRITE ${_laname} "# ${_laname} - a libtool library file, generated by cmake \n") file(WRITE ${_laname} "# ${_laname} - a libtool library file, generated by cmake \n")
file(APPEND ${_laname} "# The name that we can dlopen(3).\n") file(APPEND ${_laname} "# The name that we can dlopen(3).\n")
file(APPEND ${_laname} "dlname='${_soname}'\n") file(APPEND ${_laname} "dlname='${_soname}'\n")
file(APPEND ${_laname} "# Names of this library\n") file(APPEND ${_laname} "# Names of this library\n")
if(CYGWIN) if(CYGWIN)
file(APPEND ${_laname} "library_names='${_soname}'\n") file(APPEND ${_laname} "library_names='${_soname}'\n")
else() else()
file(APPEND ${_laname} "library_names='${_soname} ${_soname} ${_soname}'\n") file(APPEND ${_laname} "library_names='${_soname} ${_soname} ${_soname}'\n")
endif() endif()
file(APPEND ${_laname} "# The name of the static archive\n") file(APPEND ${_laname} "# The name of the static archive\n")
file(APPEND ${_laname} "old_library=''\n") file(APPEND ${_laname} "old_library=''\n")
file(APPEND ${_laname} "# Libraries that this one depends upon.\n") file(APPEND ${_laname} "# Libraries that this one depends upon.\n")
file(APPEND ${_laname} "dependency_libs=''\n") file(APPEND ${_laname} "dependency_libs=''\n")
# file(APPEND ${_laname} "dependency_libs='${${_target}_LIB_DEPENDS}'\n") # file(APPEND ${_laname} "dependency_libs='${${_target}_LIB_DEPENDS}'\n")
file(APPEND ${_laname} "# Version information.\ncurrent=0\nage=0\nrevision=0\n") file(APPEND ${_laname} "# Version information.\ncurrent=0\nage=0\nrevision=0\n")
file(APPEND ${_laname} "# Is this an already installed library?\ninstalled=yes\n") file(APPEND ${_laname} "# Is this an already installed library?\ninstalled=yes\n")
file(APPEND ${_laname} "# Should we warn about portability when linking against -modules?\nshouldnotlink=yes\n") file(APPEND ${_laname} "# Should we warn about portability when linking against -modules?\nshouldnotlink=yes\n")
file(APPEND ${_laname} "# Files to dlopen/dlpreopen\ndlopen=''\ndlpreopen=''\n") file(APPEND ${_laname} "# Files to dlopen/dlpreopen\ndlopen=''\ndlpreopen=''\n")
file(APPEND ${_laname} "# Directory that this library needs to be installed in:\n") file(APPEND ${_laname} "# Directory that this library needs to be installed in:\n")
file(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}/lib/kde3'\n") file(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}/lib/kde3'\n")
install_files(${KDE3_LIBTOOL_DIR} FILES ${_laname}) install_files(${KDE3_LIBTOOL_DIR} FILES ${_laname})
endmacro() endmacro()
macro(KDE3_CREATE_FINAL_FILE _filename) macro(KDE3_CREATE_FINAL_FILE _filename)
file(WRITE ${_filename} "//autogenerated file\n") file(WRITE ${_filename} "//autogenerated file\n")
foreach (_current_FILE ${ARGN}) foreach (_current_FILE ${ARGN})
file(APPEND ${_filename} "#include \"${_current_FILE}\"\n") file(APPEND ${_filename} "#include \"${_current_FILE}\"\n")
endforeach () endforeach ()
endmacro() endmacro()
@@ -346,24 +347,24 @@ option(KDE3_BUILD_TESTS "Build the tests")
macro(KDE3_ADD_KPART _target_NAME _with_PREFIX) macro(KDE3_ADD_KPART _target_NAME _with_PREFIX)
#is the first argument is "WITH_PREFIX" then keep the standard "lib" prefix, otherwise SET the prefix empty #is the first argument is "WITH_PREFIX" then keep the standard "lib" prefix, otherwise SET the prefix empty
if (${_with_PREFIX} STREQUAL "WITH_PREFIX") if (${_with_PREFIX} STREQUAL "WITH_PREFIX")
set(_first_SRC) set(_first_SRC)
else () else ()
set(_first_SRC ${_with_PREFIX}) set(_first_SRC ${_with_PREFIX})
endif () endif ()
# if (KDE3_ENABLE_FINAL) # if (KDE3_ENABLE_FINAL)
# KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${_first_SRC} ${ARGN}) # KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${_first_SRC} ${ARGN})
# add_library(${_target_NAME} MODULE ${_target_NAME}_final.cpp) # add_library(${_target_NAME} MODULE ${_target_NAME}_final.cpp)
# else () # else ()
add_library(${_target_NAME} MODULE ${_first_SRC} ${ARGN}) add_library(${_target_NAME} MODULE ${_first_SRC} ${ARGN})
# endif () # endif ()
if(_first_SRC) if(_first_SRC)
set_target_properties(${_target_NAME} PROPERTIES PREFIX "") set_target_properties(${_target_NAME} PROPERTIES PREFIX "")
endif() endif()
KDE3_INSTALL_LIBTOOL_FILE(${_target_NAME}) KDE3_INSTALL_LIBTOOL_FILE(${_target_NAME})
endmacro() endmacro()
@@ -374,13 +375,13 @@ macro(KDE3_ADD_KDEINIT_EXECUTABLE _target_NAME )
# KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN}) # KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN})
# add_library(kdeinit_${_target_NAME} SHARED ${_target_NAME}_final.cpp) # add_library(kdeinit_${_target_NAME} SHARED ${_target_NAME}_final.cpp)
# else () # else ()
add_library(kdeinit_${_target_NAME} SHARED ${ARGN} ) add_library(kdeinit_${_target_NAME} SHARED ${ARGN} )
# endif () # endif ()
configure_file(${KDE3_MODULE_DIR}/kde3init_dummy.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp) configure_file(${KDE3_MODULE_DIR}/kde3init_dummy.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp)
add_executable( ${_target_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp ) add_executable( ${_target_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp )
target_link_libraries( ${_target_NAME} kdeinit_${_target_NAME} ) target_link_libraries( ${_target_NAME} kdeinit_${_target_NAME} )
endmacro() endmacro()
@@ -391,7 +392,7 @@ macro(KDE3_ADD_EXECUTABLE _target_NAME )
# KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN}) # KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN})
# add_executable(${_target_NAME} ${_target_NAME}_final.cpp) # add_executable(${_target_NAME} ${_target_NAME}_final.cpp)
# else () # else ()
add_executable(${_target_NAME} ${ARGN} ) add_executable(${_target_NAME} ${ARGN} )
# endif () # endif ()
endmacro() endmacro()

View File

@@ -18,13 +18,13 @@ OBJECT_DEPENDS depend_files) instead.
macro (MACRO_ADD_FILE_DEPENDENCIES _file) macro (MACRO_ADD_FILE_DEPENDENCIES _file)
get_source_file_property(_deps ${_file} OBJECT_DEPENDS) get_source_file_property(_deps ${_file} OBJECT_DEPENDS)
if (_deps) if (_deps)
set(_deps ${_deps} ${ARGN}) set(_deps ${_deps} ${ARGN})
else () else ()
set(_deps ${ARGN}) set(_deps ${ARGN})
endif () endif ()
set_source_files_properties(${_file} PROPERTIES OBJECT_DEPENDS "${_deps}") set_source_files_properties(${_file} PROPERTIES OBJECT_DEPENDS "${_deps}")
endmacro () endmacro ()

View File

@@ -1,10 +1,10 @@
if(CMAKE_SYSTEM MATCHES "SunOS-4") if(CMAKE_SYSTEM MATCHES "SunOS-4")
set(CMAKE_C_COMPILE_OPTIONS_PIC "-PIC") set(CMAKE_C_COMPILE_OPTIONS_PIC "-PIC")
set(CMAKE_C_COMPILE_OPTIONS_PIE "-PIE") set(CMAKE_C_COMPILE_OPTIONS_PIE "-PIE")
set(CMAKE_SHARED_LIBRARY_C_FLAGS "-PIC") set(CMAKE_SHARED_LIBRARY_C_FLAGS "-PIC")
set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-r") set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-r")
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-R") set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-R")
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
endif() endif()
include(Platform/UnixPaths) include(Platform/UnixPaths)

View File

@@ -17,7 +17,7 @@ set(MSVC 1)
# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun) # and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun)
# hardcode CMAKE_LINKER here to link, so it behaves as it did before, Alex # hardcode CMAKE_LINKER here to link, so it behaves as it did before, Alex
if(NOT DEFINED CMAKE_LINKER) if(NOT DEFINED CMAKE_LINKER)
set(CMAKE_LINKER link) set(CMAKE_LINKER link)
endif() endif()
if(CMAKE_VERBOSE_MAKEFILE) if(CMAKE_VERBOSE_MAKEFILE)

View File

@@ -140,20 +140,20 @@ endfunction ()
macro (QT4_GENERATE_MOC infile outfile ) macro (QT4_GENERATE_MOC infile outfile )
# get include dirs and flags # get include dirs and flags
QT4_GET_MOC_FLAGS(moc_flags) QT4_GET_MOC_FLAGS(moc_flags)
get_filename_component(abs_infile ${infile} ABSOLUTE) get_filename_component(abs_infile ${infile} ABSOLUTE)
set(_outfile "${outfile}") set(_outfile "${outfile}")
if(NOT IS_ABSOLUTE "${outfile}") if(NOT IS_ABSOLUTE "${outfile}")
set(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${outfile}") set(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${outfile}")
endif() endif()
if (${ARGC} GREATER 3 AND "x${ARGV2}" STREQUAL "xTARGET") if (${ARGC} GREATER 3 AND "x${ARGV2}" STREQUAL "xTARGET")
set(moc_target ${ARGV3}) set(moc_target ${ARGV3})
endif() endif()
QT4_CREATE_MOC_COMMAND(${abs_infile} ${_outfile} "${moc_flags}" "" "${moc_target}") QT4_CREATE_MOC_COMMAND(${abs_infile} ${_outfile} "${moc_flags}" "" "${moc_target}")
set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
endmacro () endmacro ()
@@ -414,49 +414,49 @@ endmacro()
macro(QT4_CREATE_TRANSLATION _qm_files) macro(QT4_CREATE_TRANSLATION _qm_files)
QT4_EXTRACT_OPTIONS(_lupdate_files _lupdate_options _lupdate_target ${ARGN}) QT4_EXTRACT_OPTIONS(_lupdate_files _lupdate_options _lupdate_target ${ARGN})
set(_my_sources) set(_my_sources)
set(_my_dirs) set(_my_dirs)
set(_my_tsfiles) set(_my_tsfiles)
set(_ts_pro) set(_ts_pro)
foreach (_file ${_lupdate_files}) foreach (_file ${_lupdate_files})
get_filename_component(_ext ${_file} EXT) get_filename_component(_ext ${_file} EXT)
get_filename_component(_abs_FILE ${_file} ABSOLUTE) get_filename_component(_abs_FILE ${_file} ABSOLUTE)
if(_ext MATCHES "ts") if(_ext MATCHES "ts")
list(APPEND _my_tsfiles ${_abs_FILE}) list(APPEND _my_tsfiles ${_abs_FILE})
else() else()
if(NOT _ext) if(NOT _ext)
list(APPEND _my_dirs ${_abs_FILE}) list(APPEND _my_dirs ${_abs_FILE})
else() else()
list(APPEND _my_sources ${_abs_FILE}) list(APPEND _my_sources ${_abs_FILE})
endif() endif()
endif() endif()
endforeach() endforeach()
foreach(_ts_file ${_my_tsfiles}) foreach(_ts_file ${_my_tsfiles})
if(_my_sources) if(_my_sources)
# make a .pro file to call lupdate on, so we don't make our commands too # make a .pro file to call lupdate on, so we don't make our commands too
# long for some systems # long for some systems
get_filename_component(_ts_name ${_ts_file} NAME_WE) get_filename_component(_ts_name ${_ts_file} NAME_WE)
set(_ts_pro ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_ts_name}_lupdate.pro) set(_ts_pro ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_ts_name}_lupdate.pro)
set(_pro_srcs) set(_pro_srcs)
foreach(_pro_src ${_my_sources}) foreach(_pro_src ${_my_sources})
string(APPEND _pro_srcs " \\\n \"${_pro_src}\"") string(APPEND _pro_srcs " \\\n \"${_pro_src}\"")
endforeach() endforeach()
set(_pro_includes) set(_pro_includes)
get_directory_property(_inc_DIRS INCLUDE_DIRECTORIES) get_directory_property(_inc_DIRS INCLUDE_DIRECTORIES)
list(REMOVE_DUPLICATES _inc_DIRS) list(REMOVE_DUPLICATES _inc_DIRS)
foreach(_pro_include ${_inc_DIRS}) foreach(_pro_include ${_inc_DIRS})
get_filename_component(_abs_include "${_pro_include}" ABSOLUTE) get_filename_component(_abs_include "${_pro_include}" ABSOLUTE)
string(APPEND _pro_includes " \\\n \"${_abs_include}\"") string(APPEND _pro_includes " \\\n \"${_abs_include}\"")
endforeach() endforeach()
file(GENERATE OUTPUT ${_ts_pro} CONTENT "SOURCES =${_pro_srcs}\nINCLUDEPATH =${_pro_includes}\n") file(GENERATE OUTPUT ${_ts_pro} CONTENT "SOURCES =${_pro_srcs}\nINCLUDEPATH =${_pro_includes}\n")
endif() endif()
add_custom_command(OUTPUT ${_ts_file} add_custom_command(OUTPUT ${_ts_file}
COMMAND Qt4::lupdate COMMAND Qt4::lupdate
ARGS ${_lupdate_options} ${_ts_pro} ${_my_dirs} -ts ${_ts_file} ARGS ${_lupdate_options} ${_ts_pro} ${_my_dirs} -ts ${_ts_file}
DEPENDS ${_my_sources} ${_ts_pro} VERBATIM) DEPENDS ${_my_sources} ${_ts_pro} VERBATIM)
endforeach() endforeach()
QT4_ADD_TRANSLATION(${_qm_files} ${_my_tsfiles}) QT4_ADD_TRANSLATION(${_qm_files} ${_my_tsfiles})
endmacro() endmacro()

View File

@@ -32,38 +32,38 @@ internal use only:
# first check that ecosconfig is available # first check that ecosconfig is available
find_program(ECOSCONFIG_EXECUTABLE NAMES ecosconfig) find_program(ECOSCONFIG_EXECUTABLE NAMES ecosconfig)
if(NOT ECOSCONFIG_EXECUTABLE) if(NOT ECOSCONFIG_EXECUTABLE)
message(SEND_ERROR "ecosconfig was not found. Either include it in the system path or set it manually using ccmake.") message(SEND_ERROR "ecosconfig was not found. Either include it in the system path or set it manually using ccmake.")
else() else()
message(STATUS "Found ecosconfig: ${ECOSCONFIG_EXECUTABLE}") message(STATUS "Found ecosconfig: ${ECOSCONFIG_EXECUTABLE}")
endif() endif()
# check that ECOS_REPOSITORY is set correctly # check that ECOS_REPOSITORY is set correctly
if (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db) if (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db)
message(SEND_ERROR "The environment variable ECOS_REPOSITORY is not set correctly. Set it to the directory which contains the file ecos.db") message(SEND_ERROR "The environment variable ECOS_REPOSITORY is not set correctly. Set it to the directory which contains the file ecos.db")
else () else ()
message(STATUS "ECOS_REPOSITORY is set to $ENV{ECOS_REPOSITORY}") message(STATUS "ECOS_REPOSITORY is set to $ENV{ECOS_REPOSITORY}")
endif () endif ()
# check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't work # check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't work
find_package(Tclsh) find_package(Tclsh)
if (NOT TCL_TCLSH) if (NOT TCL_TCLSH)
message(SEND_ERROR "The TCL tclsh was not found. Please install TCL, it is required for building eCos applications.") message(SEND_ERROR "The TCL tclsh was not found. Please install TCL, it is required for building eCos applications.")
else () else ()
message(STATUS "tlcsh found: ${TCL_TCLSH}") message(STATUS "tlcsh found: ${TCL_TCLSH}")
endif () endif ()
#add the globale include-diretories #add the globale include-diretories
#usage: ECOS_ADD_INCLUDE_DIRECTORIES() #usage: ECOS_ADD_INCLUDE_DIRECTORIES()
macro(ECOS_ADD_INCLUDE_DIRECTORIES) macro(ECOS_ADD_INCLUDE_DIRECTORIES)
#check for ProjectSources.txt one level higher #check for ProjectSources.txt one level higher
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt) if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../)
else () else ()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/)
endif () endif ()
#the ecos include directory #the ecos include directory
include_directories(${CMAKE_CURRENT_BINARY_DIR}/ecos/install/include/) include_directories(${CMAKE_CURRENT_BINARY_DIR}/ecos/install/include/)
endmacro() endmacro()
@@ -71,47 +71,47 @@ endmacro()
#we want to compile for the xscale processor, in this case the following macro has to be called #we want to compile for the xscale processor, in this case the following macro has to be called
#usage: ECOS_USE_ARM_ELF_TOOLS() #usage: ECOS_USE_ARM_ELF_TOOLS()
macro (ECOS_USE_ARM_ELF_TOOLS) macro (ECOS_USE_ARM_ELF_TOOLS)
set(CMAKE_CXX_COMPILER "arm-elf-c++") set(CMAKE_CXX_COMPILER "arm-elf-c++")
set(CMAKE_COMPILER_IS_GNUCXX 1) set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_C_COMPILER "arm-elf-gcc") set(CMAKE_C_COMPILER "arm-elf-gcc")
set(CMAKE_AR "arm-elf-ar") set(CMAKE_AR "arm-elf-ar")
set(CMAKE_RANLIB "arm-elf-ranlib") set(CMAKE_RANLIB "arm-elf-ranlib")
#for linking #for linking
set(ECOS_LD_MCPU "-mcpu=xscale") set(ECOS_LD_MCPU "-mcpu=xscale")
#for compiling #for compiling
add_definitions(-mcpu=xscale -mapcs-frame) add_definitions(-mcpu=xscale -mapcs-frame)
#for the obj-tools #for the obj-tools
set(ECOS_ARCH_PREFIX "arm-elf-") set(ECOS_ARCH_PREFIX "arm-elf-")
endmacro () endmacro ()
#usage: ECOS_USE_PPC_EABI_TOOLS() #usage: ECOS_USE_PPC_EABI_TOOLS()
macro (ECOS_USE_PPC_EABI_TOOLS) macro (ECOS_USE_PPC_EABI_TOOLS)
set(CMAKE_CXX_COMPILER "powerpc-eabi-c++") set(CMAKE_CXX_COMPILER "powerpc-eabi-c++")
set(CMAKE_COMPILER_IS_GNUCXX 1) set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_C_COMPILER "powerpc-eabi-gcc") set(CMAKE_C_COMPILER "powerpc-eabi-gcc")
set(CMAKE_AR "powerpc-eabi-ar") set(CMAKE_AR "powerpc-eabi-ar")
set(CMAKE_RANLIB "powerpc-eabi-ranlib") set(CMAKE_RANLIB "powerpc-eabi-ranlib")
#for linking #for linking
set(ECOS_LD_MCPU "") set(ECOS_LD_MCPU "")
#for compiling #for compiling
add_definitions() add_definitions()
#for the obj-tools #for the obj-tools
set(ECOS_ARCH_PREFIX "powerpc-eabi-") set(ECOS_ARCH_PREFIX "powerpc-eabi-")
endmacro () endmacro ()
#usage: ECOS_USE_I386_ELF_TOOLS() #usage: ECOS_USE_I386_ELF_TOOLS()
macro (ECOS_USE_I386_ELF_TOOLS) macro (ECOS_USE_I386_ELF_TOOLS)
set(CMAKE_CXX_COMPILER "i386-elf-c++") set(CMAKE_CXX_COMPILER "i386-elf-c++")
set(CMAKE_COMPILER_IS_GNUCXX 1) set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_C_COMPILER "i386-elf-gcc") set(CMAKE_C_COMPILER "i386-elf-gcc")
set(CMAKE_AR "i386-elf-ar") set(CMAKE_AR "i386-elf-ar")
set(CMAKE_RANLIB "i386-elf-ranlib") set(CMAKE_RANLIB "i386-elf-ranlib")
#for linking #for linking
set(ECOS_LD_MCPU "") set(ECOS_LD_MCPU "")
#for compiling #for compiling
add_definitions() add_definitions()
#for the obj-tools #for the obj-tools
set(ECOS_ARCH_PREFIX "i386-elf-") set(ECOS_ARCH_PREFIX "i386-elf-")
endmacro () endmacro ()
@@ -122,13 +122,13 @@ endmacro ()
#followed by all source files #followed by all source files
#usage: ECOS_ADJUST_DIRECTORY(adjusted_SRCS ${my_srcs}) #usage: ECOS_ADJUST_DIRECTORY(adjusted_SRCS ${my_srcs})
macro(ECOS_ADJUST_DIRECTORY _target_FILES ) macro(ECOS_ADJUST_DIRECTORY _target_FILES )
foreach (_current_FILE ${ARGN}) foreach (_current_FILE ${ARGN})
get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE) get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
if (NOT ${_abs_FILE} STREQUAL ${_current_FILE}) if (NOT ${_abs_FILE} STREQUAL ${_current_FILE})
get_filename_component(_abs_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../${_current_FILE} ABSOLUTE) get_filename_component(_abs_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../${_current_FILE} ABSOLUTE)
endif () endif ()
list(APPEND ${_target_FILES} ${_abs_FILE}) list(APPEND ${_target_FILES} ${_abs_FILE})
endforeach () endforeach ()
endmacro() endmacro()
# the default ecos config file name # the default ecos config file name
@@ -139,29 +139,29 @@ set(ECOS_CONFIG_FILE ecos.ecc)
#adds the command for compiling ecos #adds the command for compiling ecos
macro(ECOS_ADD_TARGET_LIB) macro(ECOS_ADD_TARGET_LIB)
# when building out-of-source, create the ecos/ subdir # when building out-of-source, create the ecos/ subdir
if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ecos) if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ecos)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ecos) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ecos)
endif() endif()
#sources depend on target.ld #sources depend on target.ld
set_source_files_properties( set_source_files_properties(
${ARGN} ${ARGN}
PROPERTIES PROPERTIES
OBJECT_DEPENDS OBJECT_DEPENDS
${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
) )
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
COMMAND sh -c \"make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos || exit -1\; if [ -e ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld ] \; then touch ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld\; fi\" COMMAND sh -c \"make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos || exit -1\; if [ -e ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld ] \; then touch ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld\; fi\"
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
) )
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
COMMAND sh -c \" cd ${CMAKE_CURRENT_BINARY_DIR}/ecos\; ${ECOSCONFIG_EXECUTABLE} --config=${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE} tree || exit -1\;\" COMMAND sh -c \" cd ${CMAKE_CURRENT_BINARY_DIR}/ecos\; ${ECOSCONFIG_EXECUTABLE} --config=${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE} tree || exit -1\;\"
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE}
) )
add_custom_target( ecos make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos/ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile ) add_custom_target( ecos make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos/ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile )
endmacro() endmacro()
# get the directory of the current file, used later on in the file # get the directory of the current file, used later on in the file
@@ -173,64 +173,64 @@ get_filename_component( ECOS_CMAKE_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
#has been adjusted beforehand by calling ECOS_ADJUST_DIRECTORY() #has been adjusted beforehand by calling ECOS_ADJUST_DIRECTORY()
#usage: ECOS_ADD_EXECUTABLE(my_app ${adjusted_SRCS}) #usage: ECOS_ADD_EXECUTABLE(my_app ${adjusted_SRCS})
macro(ECOS_ADD_EXECUTABLE _exe_NAME ) macro(ECOS_ADD_EXECUTABLE _exe_NAME )
#definitions, valid for all ecos projects #definitions, valid for all ecos projects
#the optimization and "-g" for debugging has to be enabled #the optimization and "-g" for debugging has to be enabled
#in the project-specific CMakeLists.txt #in the project-specific CMakeLists.txt
add_definitions(-D__ECOS__=1 -D__ECOS=1) add_definitions(-D__ECOS__=1 -D__ECOS=1)
set(ECOS_DEFINITIONS -Wall -Wno-long-long -pipe -fno-builtin) set(ECOS_DEFINITIONS -Wall -Wno-long-long -pipe -fno-builtin)
#the executable depends on ecos target.ld #the executable depends on ecos target.ld
ECOS_ADD_TARGET_LIB(${ARGN}) ECOS_ADD_TARGET_LIB(${ARGN})
# when using nmake makefiles, the custom buildtype suppresses the default cl.exe flags # when using nmake makefiles, the custom buildtype suppresses the default cl.exe flags
# and the rules for creating objects are adjusted for gcc # and the rules for creating objects are adjusted for gcc
set(CMAKE_BUILD_TYPE CUSTOM_ECOS_BUILD) set(CMAKE_BUILD_TYPE CUSTOM_ECOS_BUILD)
set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>") set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>") set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
# special link commands for ecos-executables # special link commands for ecos-executables
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}") set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <CMAKE_C_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}") set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <CMAKE_C_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
# some strict compiler flags # some strict compiler flags
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -fno-rtti -Wctor-dtor-privacy -fno-strict-aliasing -fno-exceptions") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -fno-rtti -Wctor-dtor-privacy -fno-strict-aliasing -fno-exceptions")
add_executable(${_exe_NAME} ${ARGN}) add_executable(${_exe_NAME} ${ARGN})
set_target_properties(${_exe_NAME} PROPERTIES SUFFIX ".elf") set_target_properties(${_exe_NAME} PROPERTIES SUFFIX ".elf")
#create a binary file #create a binary file
add_custom_command( add_custom_command(
TARGET ${_exe_NAME} TARGET ${_exe_NAME}
POST_BUILD POST_BUILD
COMMAND ${ECOS_ARCH_PREFIX}objcopy COMMAND ${ECOS_ARCH_PREFIX}objcopy
ARGS -O binary ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin ARGS -O binary ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin
) )
#and an srec file #and an srec file
add_custom_command( add_custom_command(
TARGET ${_exe_NAME} TARGET ${_exe_NAME}
POST_BUILD POST_BUILD
COMMAND ${ECOS_ARCH_PREFIX}objcopy COMMAND ${ECOS_ARCH_PREFIX}objcopy
ARGS -O srec ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec ARGS -O srec ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec
) )
#add the created files to the clean-files #add the created files to the clean-files
set_directory_properties( set_directory_properties(
PROPERTIES PROPERTIES
ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst;" ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst;"
) )
add_custom_target(ecosclean ${CMAKE_COMMAND} -DECOS_DIR=${CMAKE_CURRENT_BINARY_DIR}/ecos/ -P ${ECOS_CMAKE_MODULE_DIR}/ecos_clean.cmake ) add_custom_target(ecosclean ${CMAKE_COMMAND} -DECOS_DIR=${CMAKE_CURRENT_BINARY_DIR}/ecos/ -P ${ECOS_CMAKE_MODULE_DIR}/ecos_clean.cmake )
add_custom_target(normalclean ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) add_custom_target(normalclean ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_dependencies (ecosclean normalclean) add_dependencies (ecosclean normalclean)
add_custom_target( listing add_custom_target( listing
COMMAND echo -e \"\\n--- Symbols sorted by address ---\\n\" > ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst COMMAND echo -e \"\\n--- Symbols sorted by address ---\\n\" > ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -n ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -n ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
COMMAND echo -e \"\\n--- Symbols sorted by size ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst COMMAND echo -e \"\\n--- Symbols sorted by size ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -r --size-sort ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -r --size-sort ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
COMMAND echo -e \"\\n--- Full assembly listing ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst COMMAND echo -e \"\\n--- Full assembly listing ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
COMMAND ${ECOS_ARCH_PREFIX}objdump -S -x -d -C ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst ) COMMAND ${ECOS_ARCH_PREFIX}objdump -S -x -d -C ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst )
endmacro() endmacro()

View File

@@ -7,10 +7,10 @@ file(GLOB _files ${ECOS_DIR}/*)
# remove all directories, which consist of lower-case letters only # remove all directories, which consist of lower-case letters only
# this skips e.g. CVS/ and .subversion/ # this skips e.g. CVS/ and .subversion/
foreach(_entry ${_files}) foreach(_entry ${_files})
if(IS_DIRECTORY ${_entry}) if(IS_DIRECTORY ${_entry})
get_filename_component(dir ${_entry} NAME) get_filename_component(dir ${_entry} NAME)
if(${dir} MATCHES "^[a-z]+$") if(${dir} MATCHES "^[a-z]+$")
file(REMOVE_RECURSE ${_entry}) file(REMOVE_RECURSE ${_entry})
endif() endif()
endif() endif()
endforeach() endforeach()