Skip to content

Commit

Permalink
fix provisioning of qt dependencies in debug install and use function…
Browse files Browse the repository at this point in the history
…s in custom cmake and unify config style
  • Loading branch information
unknown authored and unknown committed Nov 25, 2014
1 parent d68481c commit fe57f93
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 63 deletions.
33 changes: 9 additions & 24 deletions cmake/Custom.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,46 +3,31 @@
# Example: source_group_by_path("${CMAKE_CURRENT_SOURCE_DIR}/src"
# "\\\\.h$|\\\\.hpp$|\\\\.cpp$|\\\\.c$|\\\\.ui$|\\\\.qrc$" "Source Files" ${sources})

macro(source_group_by_path PARENT_PATH REGEX GROUP)

set(args ${ARGV})

list(REMOVE_AT args 0)
list(REMOVE_AT args 0)
list(REMOVE_AT args 0)

foreach(FILENAME ${args})
function(source_group_by_path PARENT_PATH REGEX GROUP)

foreach (FILENAME ${ARGN})

get_filename_component(FILEPATH "${FILENAME}" REALPATH)
file(RELATIVE_PATH FILEPATH ${PARENT_PATH} ${FILEPATH})
get_filename_component(FILEPATH "${FILEPATH}" PATH)
get_filename_component(FILEPATH "${FILEPATH}" DIRECTORY)

string(REPLACE "/" "\\" FILEPATH "${FILEPATH}")

if(${FILENAME} MATCHES "${REGEX}")
source_group("${GROUP}\\${FILEPATH}" FILES ${FILENAME})
endif()
source_group("${GROUP}\\${FILEPATH}" REGULAR_EXPRESSION "${REGEX}" FILES ${FILENAME})

endforeach()

endmacro()
endfunction()


# Extract entries matching a given regex from a list

macro(list_extract OUTPUT REGEX)

set(args ${ARGV})

list(REMOVE_AT args 0)
list(REMOVE_AT args 0)

foreach(FILENAME ${args})
function(list_extract OUTPUT REGEX)

foreach(FILENAME ${ARGN})
if(${FILENAME} MATCHES "${REGEX}")
list(APPEND ${OUTPUT} ${FILENAME})
endif()

endforeach()

endmacro()
endfunction()
98 changes: 60 additions & 38 deletions globjects-config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,39 +9,9 @@
# GLOBJECTS_LIBRARY_DEBUG
# GLOBJECTS_INCLUDE_DIR

# GLOBJECTS_BINARY (win32 only)


include(FindPackageHandleStandardArgs)

if(CMAKE_CURRENT_LIST_FILE)
get_filename_component(GLOBJECTS_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
endif()

file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" ENVPROGRAMFILES)
file(TO_CMAKE_PATH "$ENV{GLOBJECTS_DIR}" ENVGLOBJECTS_DIR)

set(GLOBJECTS_INCLUDES "")
set(GLOBJECTS_LIBRARIES "")

set(LIB_PATHS
${GLOBJECTS_DIR}/build
${GLOBJECTS_DIR}/build/Release
${GLOBJECTS_DIR}/build/Debug
${GLOBJECTS_DIR}/build-release
${GLOBJECTS_DIR}/build-debug
${ENVGLOBJECTS_DIR}/lib
${GLOBJECTS_DIR}/lib
${ENVPROGRAMFILES}/globjects/lib
/usr/lib
/usr/local/lib
/sw/lib
/opt/local/lib
/usr/lib64
/usr/local/lib64
/sw/lib64
/opt/local/lib64
)
# GLOBJECTS_BINARIES (win32 only)
# GLOBJECTS_BINARY_RELEASE (win32 only)
# GLOBJECTS_BINARY_DEBUG (win32 only)

macro (find LIB_NAME HEADER)
set(HINT_PATHS ${ARGN})
Expand Down Expand Up @@ -77,34 +47,86 @@ macro (find LIB_NAME HEADER)
set(${LIB_NAME_UPPER}_LIBRARY ${${LIB_NAME_UPPER}_LIBRARY_DEBUG})
endif()

list(APPEND GLOBJECTS_INCLUDES ${${LIB_NAME_UPPER}_INCLUDE_DIR})
list(APPEND GLOBJECTS_LIBRARIES ${${LIB_NAME_UPPER}_LIBRARY})

# DEBUG
# message("${LIB_NAME_UPPER}_INCLUDE_DIR = ${${LIB_NAME_UPPER}_INCLUDE_DIR}")
# message("${LIB_NAME_UPPER}_LIBRARY_RELEASE = ${${LIB_NAME_UPPER}_LIBRARY_RELEASE}")
# message("${LIB_NAME_UPPER}_LIBRARY_DEBUG = ${${LIB_NAME_UPPER}_LIBRARY_DEBUG}")
# message("${LIB_NAME_UPPER}_LIBRARY = ${${LIB_NAME_UPPER}_LIBRARY}")

list(APPEND GLOBJECTS_INCLUDES ${${LIB_NAME_UPPER}_INCLUDE_DIR})
list(APPEND GLOBJECTS_LIBRARIES ${${LIB_NAME_UPPER}_LIBRARY})
endmacro()


if(CMAKE_CURRENT_LIST_FILE)
get_filename_component(GLOBJECTS_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
endif()

file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" ENVPROGRAMFILES)
file(TO_CMAKE_PATH "$ENV{GLOBJECTS_DIR}" ENVGLOBJECTS_DIR)

set(GLOBJECTS_INCLUDES "")
set(GLOBJECTS_LIBRARIES "")

set(LIB_PATHS
${GLOBJECTS_DIR}/build
${GLOBJECTS_DIR}/build/Release
${GLOBJECTS_DIR}/build/Debug
${GLOBJECTS_DIR}/build-release
${GLOBJECTS_DIR}/build-debug
${ENVGLOBJECTS_DIR}/lib
${GLOBJECTS_DIR}/lib
${ENVPROGRAMFILES}/globjects/lib
/usr/lib
/usr/local/lib
/sw/lib
/opt/local/lib
/usr/lib64
/usr/local/lib64
/sw/lib64
/opt/local/lib64
)


find(globjects globjects/globjects_api.h ${LIB_PATHS})

if (GLOBJECTS_LIBRARY AND WIN32)
set(GLOBJECTS_BINARIES "")

find_file(GLOBJECTS_BINARY
find_file(GLOBJECTS_BINARY_RELEASE
NAMES globjects.dll
PATHS
${GLOBJECTS_DIR}/bin
${GLOBJECTS_DIR}/build/Release
${GLOBJECTS_DIR}/build/Debug
${GLOBJECTS_DIR}/build-release
${GLOBJECTS_DIR}/build-debug
DOC "The globjects binary")

find_file(GLOBJECTS_BINARY_DEBUG
NAMES globjectsd.dll
PATHS
${GLOBJECTS_DIR}/bin
${GLOBJECTS_DIR}/build/Debug
${GLOBJECTS_DIR}/build-debug
DOC "The globjects debug binary")

if(NOT GLOBJECTS_BINARY_RELEASE STREQUAL "GLOBJECTS_BINARY_RELEASE-NOTFOUND")
list(APPEND GLOBJECTS_BINARIES ${GLOBJECTS_BINARY_RELEASE})
endif()

if(NOT GLOBJECTS_BINARY_DEBUG STREQUAL "GLOBJECTS_BINARY_DEBUG-NOTFOUND")
list(APPEND GLOBJECTS_BINARIES ${GLOBJECTS_BINARY_DEBUG})
endif()

# DEBUG
# message("${LIB_NAME_UPPER}_BINARIES = ${${LIB_NAME_UPPER}_BINARIES}")

endif()

# DEBUG
# message("GLOBJECTS_INCLUDES = ${GLOBJECTS_INCLUDES}")
# message("GLOBJECTS_LIBRARIES = ${GLOBJECTS_LIBRARIES}")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GLOBJECTS DEFAULT_MSG GLOBJECTS_LIBRARIES GLOBJECTS_INCLUDES)
mark_as_advanced(GLOBJECTS_FOUND)
5 changes: 4 additions & 1 deletion source/examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ if(OPTION_BUILD_EXAMPLES)
)

if(WIN32)
install(FILES ${GLBINDING_BINARY} DESTINATION ${INSTALL_EXAMPLES} COMPONENT examples)
install(FILES ${GLBINDING_BINARY_RELEASE} DESTINATION ${INSTALL_EXAMPLES}
CONFIGURATIONS Release COMPONENT examples)
install(FILES ${GLBINDING_BINARY_DEBUG} DESTINATION ${INSTALL_EXAMPLES}
CONFIGURATIONS Debug COMPONENT examples)
endif()

add_subdirectory("bindless-textures")
Expand Down
7 changes: 7 additions & 0 deletions source/globjects/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,13 @@ if(NOT OPTION_BUILD_STATIC)
install(TARGETS ${target} COMPONENT runtime
RUNTIME DESTINATION ${INSTALL_BIN}
LIBRARY DESTINATION ${INSTALL_SHARED})
if(WIN32)
install(FILES ${GLBINDING_BINARY_RELEASE} DESTINATION ${INSTALL_BIN}
CONFIGURATIONS Release COMPONENT dev)
install(FILES ${GLBINDING_BINARY_DEBUG} DESTINATION ${INSTALL_BIN}
CONFIGURATIONS Debug COMPONENT dev)
endif()

else()
install(TARGETS ${target} COMPONENT dev
ARCHIVE DESTINATION ${INSTALL_LIB})
Expand Down

0 comments on commit fe57f93

Please sign in to comment.