diff --git a/CMakeLists.txt b/CMakeLists.txt index 98f3d902feab26a25dfd6ec457784a32ef940c62..756d692e5c8a4f308eb2679b517b9b58cab6e435 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,78 +71,6 @@ set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") # directories outside the build tree to the install RPATH set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -# Set directory variables -if(NOT BIN_DIR) - set(BIN_DIR bin) -endif(NOT BIN_DIR) - -if(NOT LIB_DIR) - set(LIB_DIR lib) -endif(NOT LIB_DIR) - -# Output directories - this is where built library and executable -# files will be placed after building but prior to install. The -# necessary variables change between single and multi configuration -# build systems, so it is necessary to handle both cases on a -# conditional basis. - -if(NOT CMAKE_CONFIGURATION_TYPES) - # If we're not doing multi-configuration, just set the three main - # variables to the correct values. - if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${VegaFEM_BINARY_DIR}/${LIB_DIR} CACHE INTERNAL "Single output directory for building all libraries.") - endif(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) - if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${VegaFEM_BINARY_DIR}/${LIB_DIR} CACHE INTERNAL "Single output directory for building all archives.") - endif(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY) - if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${VegaFEM_BINARY_DIR}/${BIN_DIR} CACHE INTERNAL "Single output directory for building all executables.") - endif(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) -else(NOT CMAKE_CONFIGURATION_TYPES) - # Multi-configuration is more difficult. Not only do we need to - # properly set the output directories, but we also need to - # identify the "toplevel" directory for each configuration so - # we can place files, documentation, etc. in the correct - # relative positions. Because files may be placed by CMake - # without a build target to put them in their proper relative build - # directory position using these paths, we must fully qualify them - # without using CMAKE_CFG_INTDIR. - # - # We define directories that may not be quite "standard" - # for a particular build tool - for example, native VS2010 projects use - # another directory to denote CPU type being compiled for - but CMake only - # supports multi-configuration setups having multiple configurations, - # not multiple compilers. - # - # One additional wrinkle we must watch for here is the case where - # a multi-configuration setup uses "." for its internal directory - - # if that's the case, we need to just set the various config output - # directories to the same value. - set(CFG_ROOT ${VegaFEM_BINARY_DIR}) - foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES}) - if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".") - set(CFG_ROOT ${VegaFEM_BINARY_DIR}/${CFG_TYPE}) - endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".") - string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER) - if(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}") - set("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" ${CFG_ROOT}/${LIB_DIR} CACHE INTERNAL "Single output directory for building ${CFG_TYPE} libraries.") - endif(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}") - if(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}") - set("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" ${CFG_ROOT}/${LIB_DIR} CACHE INTERNAL "Single output directory for building ${CFG_TYPE} archives.") - endif(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}") - if(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}") - set("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" ${CFG_ROOT}/${BIN_DIR} CACHE INTERNAL "Single output directory for building ${CFG_TYPE} executables.") - endif(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}") - if(NOT "CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}") - set("CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}" ${CFG_ROOT} CACHE INTERNAL "Toplevel binary dir for ${CFG_TYPE} building.") - endif(NOT "CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}") - if(NOT "VegaFEM_BINARY_DIR_${CFG_TYPE_UPPER}") - set("VegaFEM_BINARY_DIR_${CFG_TYPE_UPPER}" ${CFG_ROOT} CACHE INTERNAL "Toplevel binary dir for ${CFG_TYPE} building.") - endif(NOT "VegaFEM_BINARY_DIR_${CFG_TYPE_UPPER}") - endforeach() -endif(NOT CMAKE_CONFIGURATION_TYPES) - - if (VegaFEM_ENABLE_OpenGL_SUPPORT) find_package(OpenGL REQUIRED) find_package(GLUT REQUIRED)