From 7115f60b91b5717d90f643fd692010905c7004db Mon Sep 17 00:00:00 2001 From: Bryan Galdrikian Date: Thu, 31 May 2018 11:36:08 -0700 Subject: Blast 1.1.3. See docs/release_notes.txt. --- CMakeLists.txt | 205 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 102 insertions(+), 103 deletions(-) mode change 100644 => 100755 CMakeLists.txt (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100644 new mode 100755 index 8209e67..51b6ac7 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,103 +1,102 @@ -cmake_minimum_required(VERSION 3.3) - -project(BlastAll CXX) - -CMAKE_POLICY(SET CMP0057 NEW) # Enable IN_LIST - -IF(NOT DEFINED BLAST_ROOT_DIR) - - STRING(REPLACE "\\" "/" BRD_TEMP $ENV{BLAST_ROOT_DIR}) - - # This env variable is set by GenerateProjects.bat, and is no longer available when CMake rebuilds, so this stores it in the cache - SET(BLAST_ROOT_DIR ${BRD_TEMP} CACHE INTERNAL "Root of the Blast source tree") - -ENDIF() - -IF(NOT EXISTS ${BLAST_ROOT_DIR}) - MESSAGE(FATAL_ERROR "BLAST_ROOT_DIR environment variable wasn't set or was invalid.") -ENDIF() - - -STRING(REPLACE "\\" "/" PMPR_TEMP $ENV{PM_PACKAGES_ROOT} ) - -SET(GW_DEPS_ROOT ${PMPR_TEMP}) - -STRING(REPLACE "\\" "/" CMP_TEMP "${BLAST_ROOT_DIR}/sdk/compiler/cmake/modules/") - -# Add the project specific CMake modules to the module path -LIST(APPEND CMAKE_MODULE_PATH ${CMP_TEMP}) - -IF(NOT DEFINED CMAKEMODULES_VERSION) - SET(CMAKEMODULES_VERSION $ENV{PM_CMakeModules_VERSION} CACHE INTERNAL "CMakeModules version from generation batch") -ENDIF() - -#TODO: More elegance -IF(NOT EXISTS ${GW_DEPS_ROOT}/$ENV{PM_CMakeModules_NAME}/${CMAKEMODULES_VERSION}) - MESSAGE(FATAL_ERROR "Could not find $ENV{PM_CMakeModules_NAME}/${CMAKEMODULES_VERSION} at ${GW_DEPS_ROOT}") -ENDIF() - -SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${GW_DEPS_ROOT}/$ENV{PM_CMakeModules_NAME}/${CMAKEMODULES_VERSION}") - -MESSAGE("Module path:" ${CMAKE_MODULE_PATH}) - - -IF(CMAKE_CONFIGURATION_TYPES) - SET(CMAKE_CONFIGURATION_TYPES debug profile checked release) - SET(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING - "Reset config to what we need" - FORCE) - - SET(CMAKE_SHARED_LINKER_FLAGS_CHECKED "") - SET(CMAKE_SHARED_LINKER_FLAGS_PROFILE "") - - SET(CMAKE_EXE_LINKER_FLAGS_CHECKED "") - SET(CMAKE_EXE_LINKER_FLAGS_PROFILE "") - -ENDIF() - -# Default to appending "DEBUG", "PROFILE", etc to produced artifacts -IF(NOT DEFINED APPEND_CONFIG_NAME) - SET(APPEND_CONFIG_NAME ON) -ENDIF() - -IF (APPEND_CONFIG_NAME) - MESSAGE("Appending config to output names") - - SET(CMAKE_DEBUG_POSTFIX "DEBUG") - SET(CMAKE_PROFILE_POSTFIX "PROFILE") - SET(CMAKE_CHECKED_POSTFIX "CHECKED") - SET(CMAKE_RELEASE_POSTFIX "") -ENDIF() - -INCLUDE(SetOutputPaths) - -# Either have to define a single output path, or each one. - -IF(NOT DEFINED BL_OUTPUT_DIR) - IF (NOT DEFINED BL_LIB_OUTPUT_DIR) - MESSAGE(FATAL_ERROR "BL_LIB_OUTPUT_DIR not defined - Define either BL_OUTPUT_DIR or BL_LIB_OUTPUT_DIR and BL_DLL_OUTPUT_DIR and BL_EXE_OUTPUT_DIR") - ENDIF() - - IF (NOT DEFINED BL_DLL_OUTPUT_DIR) - MESSAGE(FATAL_ERROR "BL_DLL_OUTPUT_DIR not defined - Define either BL_OUTPUT_DIR or BL_LIB_OUTPUT_DIR and BL_DLL_OUTPUT_DIR and BL_EXE_OUTPUT_DIR") - ENDIF() - - IF (NOT DEFINED BL_EXE_OUTPUT_DIR) - MESSAGE(FATAL_ERROR "BL_EXE_OUTPUT_DIR not defined - Define either BL_OUTPUT_DIR or BL_LIB_OUTPUT_DIR and BL_DLL_OUTPUT_DIR and BL_EXE_OUTPUT_DIR") - ENDIF() - - SetLibOutputPath(${BL_LIB_OUTPUT_DIR}) - SetDllOutputPath(${BL_DLL_OUTPUT_DIR}) - SetExeOutputPath(${BL_EXE_OUTPUT_DIR}) -ELSE() - SetSingleOutputPath(${BL_OUTPUT_DIR}) -ENDIF() - -SET(PROJECT_CMAKE_FILES_DIR compiler/cmake/) - -# These projects are common to all platforms -ADD_SUBDIRECTORY(${BLAST_ROOT_DIR}/sdk "${CMAKE_CURRENT_BINARY_DIR}/blast_bin") -ADD_SUBDIRECTORY(${BLAST_ROOT_DIR}/test "${CMAKE_CURRENT_BINARY_DIR}/test_bin") - -# Include the platform specific configuration -INCLUDE(${PROJECT_CMAKE_FILES_DIR}${TARGET_BUILD_PLATFORM}/CMakeLists.txt) +cmake_minimum_required(VERSION 3.3) + +project(BlastAll CXX) + +CMAKE_POLICY(SET CMP0057 NEW) # Enable IN_LIST + +IF(NOT DEFINED BLAST_ROOT_DIR) + + STRING(REPLACE "\\" "/" BRD_TEMP $ENV{BLAST_ROOT_DIR}) + + # This env variable is set by GenerateProjects.bat, and is no longer available when CMake rebuilds, so this stores it in the cache + SET(BLAST_ROOT_DIR ${BRD_TEMP} CACHE INTERNAL "Root of the Blast source tree") + +ENDIF() + +IF(NOT EXISTS ${BLAST_ROOT_DIR}) + MESSAGE(FATAL_ERROR "BLAST_ROOT_DIR environment variable wasn't set or was invalid.") +ENDIF() + + +STRING(REPLACE "\\" "/" PMPR_TEMP $ENV{PM_PACKAGES_ROOT} ) + +SET(GW_DEPS_ROOT ${PMPR_TEMP}) + +STRING(REPLACE "\\" "/" CMP_TEMP "${BLAST_ROOT_DIR}/sdk/compiler/cmake/modules/") + +# Add the project specific CMake modules to the module path +LIST(APPEND CMAKE_MODULE_PATH ${CMP_TEMP}) + +IF(NOT DEFINED CMAKEMODULES_VERSION) + SET(CMAKEMODULES_VERSION $ENV{PM_CMakeModules_VERSION} CACHE INTERNAL "CMakeModules version from generation batch") +ENDIF() + +IF(NOT EXISTS $ENV{PM_CMakeModules_PATH}) + MESSAGE(FATAL_ERROR "Could not find $ENV{PM_CMakeModules_PATH}") +ENDIF() + +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "$ENV{PM_CMakeModules_PATH}") + +MESSAGE("Module path:" ${CMAKE_MODULE_PATH}) + + +IF(CMAKE_CONFIGURATION_TYPES) + SET(CMAKE_CONFIGURATION_TYPES debug profile checked release) + SET(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING + "Reset config to what we need" + FORCE) + + SET(CMAKE_SHARED_LINKER_FLAGS_CHECKED "") + SET(CMAKE_SHARED_LINKER_FLAGS_PROFILE "") + + SET(CMAKE_EXE_LINKER_FLAGS_CHECKED "") + SET(CMAKE_EXE_LINKER_FLAGS_PROFILE "") + +ENDIF() + +# Default to appending "DEBUG", "PROFILE", etc to produced artifacts +IF(NOT DEFINED APPEND_CONFIG_NAME) + SET(APPEND_CONFIG_NAME ON) +ENDIF() + +IF (APPEND_CONFIG_NAME) + MESSAGE("Appending config to output names") + + SET(CMAKE_DEBUG_POSTFIX "DEBUG") + SET(CMAKE_PROFILE_POSTFIX "PROFILE") + SET(CMAKE_CHECKED_POSTFIX "CHECKED") + SET(CMAKE_RELEASE_POSTFIX "") +ENDIF() + +INCLUDE(SetOutputPaths) + +# Either have to define a single output path, or each one. + +IF(NOT DEFINED BL_OUTPUT_DIR) + IF (NOT DEFINED BL_LIB_OUTPUT_DIR) + MESSAGE(FATAL_ERROR "BL_LIB_OUTPUT_DIR not defined - Define either BL_OUTPUT_DIR or BL_LIB_OUTPUT_DIR and BL_DLL_OUTPUT_DIR and BL_EXE_OUTPUT_DIR") + ENDIF() + + IF (NOT DEFINED BL_DLL_OUTPUT_DIR) + MESSAGE(FATAL_ERROR "BL_DLL_OUTPUT_DIR not defined - Define either BL_OUTPUT_DIR or BL_LIB_OUTPUT_DIR and BL_DLL_OUTPUT_DIR and BL_EXE_OUTPUT_DIR") + ENDIF() + + IF (NOT DEFINED BL_EXE_OUTPUT_DIR) + MESSAGE(FATAL_ERROR "BL_EXE_OUTPUT_DIR not defined - Define either BL_OUTPUT_DIR or BL_LIB_OUTPUT_DIR and BL_DLL_OUTPUT_DIR and BL_EXE_OUTPUT_DIR") + ENDIF() + + SetLibOutputPath(${BL_LIB_OUTPUT_DIR}) + SetDllOutputPath(${BL_DLL_OUTPUT_DIR}) + SetExeOutputPath(${BL_EXE_OUTPUT_DIR}) +ELSE() + SetSingleOutputPath(${BL_OUTPUT_DIR}) +ENDIF() + +SET(PROJECT_CMAKE_FILES_DIR compiler/cmake/) + +# These projects are common to all platforms +ADD_SUBDIRECTORY(${BLAST_ROOT_DIR}/sdk "${CMAKE_CURRENT_BINARY_DIR}/blast_bin") +ADD_SUBDIRECTORY(${BLAST_ROOT_DIR}/test "${CMAKE_CURRENT_BINARY_DIR}/test_bin") + +# Include the platform specific configuration +INCLUDE(${PROJECT_CMAKE_FILES_DIR}${TARGET_BUILD_PLATFORM}/CMakeLists.txt) -- cgit v1.2.3