From: Sergey Belash Date: Fri, 7 Mar 2014 12:45:52 +0000 (+0400) Subject: CMake base files added X-Git-Tag: V_0.1~64 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=c28a3cb238d671adc1fce4e91cc6c778974c655c;p=modules%2Fshaper.git CMake base files added --- diff --git a/CMakeCommon/Common.cmake b/CMakeCommon/Common.cmake new file mode 100644 index 000000000..29f6e2241 --- /dev/null +++ b/CMakeCommon/Common.cmake @@ -0,0 +1,8 @@ +cmake_minimum_required (VERSION 2.6) +cmake_policy(SET CMP0011 NEW) + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) diff --git a/CMakeCommon/FindCAS.cmake b/CMakeCommon/FindCAS.cmake new file mode 100644 index 000000000..110e7c077 --- /dev/null +++ b/CMakeCommon/FindCAS.cmake @@ -0,0 +1,234 @@ +# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +IF(NOT CAS_FIND_QUIETLY) + MESSAGE(STATUS "Looking for OpenCascade (CAS) ...") +ENDIF() + +SET(_CAS_VERSION_FILE_NAME Standard_Version.hxx) + +# Include directories: +FIND_PATH(CAS_INCLUDE_DIRS ${_CAS_VERSION_FILE_NAME} PATH_SUFFIXES inc) +FIND_FILE(CAS_VERSION_FILE ${_CAS_VERSION_FILE_NAME} PATH_SUFFIXES inc) +MARK_AS_ADVANCED(CAS_VERSION_FILE) + +# Is this a development version: +SET(CAS_VERSION_DEVELOPMENT 0) +IF(CAS_VERSION_FILE) + FILE(STRINGS ${CAS_VERSION_FILE} CAS_VERSION_DEVELOPMENT_STR + REGEX "^ *#define OCC_VERSION_DEVELOPMENT *\"dev\".*$") + IF(CAS_VERSION_DEVELOPMENT_STR) + SET(CAS_VERSION_DEVELOPMENT 1) + ENDIF(CAS_VERSION_DEVELOPMENT_STR) + + # Extract normal version: + FILE(STRINGS ${CAS_VERSION_FILE} _tmp + REGEX "^ *#define OCC_VERSION_COMPLETE *\"[^\"]*\".*$") + STRING(REGEX REPLACE ".*\"([^\"]*)\".*" "\\1" CAS_VERSION_STR "${_tmp}") + +ENDIF() + +IF(CAS_VERSION_DEVELOPMENT AND (NOT CAS_FIND_QUIETLY)) + MESSAGE(STATUS "OpenCascade: development version is being used!") +ENDIF() + +# Win specific stuff: +IF(WIN32) + IF(CMAKE_BUILD_TYPE STREQUAL Debug) + SET(CMAKE_LIBRARY_PATH $ENV{CAS_ROOT_DIR}/win32/libd) + ELSE() + SET(CMAKE_LIBRARY_PATH $ENV{CAS_ROOT_DIR}/win32/lib) + ENDIF() +ENDIF() + +# Definitions: +SET(CAS_DEFINITIONS "-DLIN -DLINTEL -DCSFDB") +SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -DNo_exception") + +# No config.h file in the OPEN CASCADE on WINDOWS platform +IF(NOT WIN32) + SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -DHAVE_CONFIG_H") +ELSE() + SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -DWNT") +ENDIF() + +SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -DOCC_CONVERT_SIGNALS") + +# Test for 64 bit machine: +IF(CMAKE_SIZEOF_VOID_P STREQUAL 8) + SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -D_OCC64") +ENDIF() + +IF(CAS_VERSION_DEVELOPMENT STREQUAL 1) + SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -DCAS_VERSION_DEVELOPMENT") +ENDIF() + +# Find Xmu library (X11 widgets?) +IF(NOT WIN32) + FIND_LIBRARY(CAS_Xmu Xmu) + IF(Xmu) + SET(CAS_LDPATH ${Xmu}) + ENDIF() +ENDIF() + +FIND_LIBRARY(CAS_FWOSPlugin FWOSPlugin ) +FIND_LIBRARY(CAS_PTKernel PTKernel ) +FIND_LIBRARY(CAS_TKAdvTools TKAdvTools ) +FIND_LIBRARY(CAS_TKBin TKBin ) +FIND_LIBRARY(CAS_TKBinL TKBinL ) +FIND_LIBRARY(CAS_TKBinTObj TKBinTObj ) +FIND_LIBRARY(CAS_TKBinXCAF TKBinXCAF ) +FIND_LIBRARY(CAS_TKBO TKBO ) +FIND_LIBRARY(CAS_TKBool TKBool ) +FIND_LIBRARY(CAS_TKBRep TKBRep ) +FIND_LIBRARY(CAS_TKCAF TKCAF ) +FIND_LIBRARY(CAS_TKCDF TKCDF ) +FIND_LIBRARY(CAS_TKernel TKernel ) +FIND_LIBRARY(CAS_TKFeat TKFeat ) +FIND_LIBRARY(CAS_TKFillet TKFillet ) +FIND_LIBRARY(CAS_TKG2d TKG2d ) +FIND_LIBRARY(CAS_TKG3d TKG3d ) +FIND_LIBRARY(CAS_TKGeomAlgo TKGeomAlgo ) +FIND_LIBRARY(CAS_TKGeomBase TKGeomBase ) +FIND_LIBRARY(CAS_TKHLR TKHLR ) +FIND_LIBRARY(CAS_TKIGES TKIGES ) +FIND_LIBRARY(CAS_TKLCAF TKLCAF ) +FIND_LIBRARY(CAS_TKMath TKMath ) +FIND_LIBRARY(CAS_TKMesh TKMesh ) +FIND_LIBRARY(CAS_TKMeshVS TKMeshVS ) +FIND_LIBRARY(CAS_TKNIS TKNIS ) +FIND_LIBRARY(CAS_TKOffset TKOffset ) +FIND_LIBRARY(CAS_TKOpenGl TKOpenGl ) +FIND_LIBRARY(CAS_TKPCAF TKPCAF ) +FIND_LIBRARY(CAS_TKPLCAF TKPLCAF ) +FIND_LIBRARY(CAS_TKPrim TKPrim ) +FIND_LIBRARY(CAS_TKPShape TKPShape ) +FIND_LIBRARY(CAS_TKService TKService ) +FIND_LIBRARY(CAS_TKShapeSchema TKShapeSchema ) +FIND_LIBRARY(CAS_TKShHealing TKShHealing ) +FIND_LIBRARY(CAS_TKStdLSchema TKStdLSchema ) +FIND_LIBRARY(CAS_TKStdSchema TKStdSchema ) +FIND_LIBRARY(CAS_TKSTEP TKSTEP ) +FIND_LIBRARY(CAS_TKSTEP209 TKSTEP209 ) +FIND_LIBRARY(CAS_TKSTEPAttr TKSTEPAttr ) +FIND_LIBRARY(CAS_TKSTEPBase TKSTEPBase ) +FIND_LIBRARY(CAS_TKSTL TKSTL ) +FIND_LIBRARY(CAS_TKTObj TKTObj ) +FIND_LIBRARY(CAS_TKTopAlgo TKTopAlgo ) +FIND_LIBRARY(CAS_TKV3d TKV3d ) +FIND_LIBRARY(CAS_TKVRML TKVRML ) +FIND_LIBRARY(CAS_TKXCAF TKXCAF ) +FIND_LIBRARY(CAS_TKXCAFSchema TKXCAFSchema ) +FIND_LIBRARY(CAS_TKXDEIGES TKXDEIGES ) +FIND_LIBRARY(CAS_TKXDESTEP TKXDESTEP ) +FIND_LIBRARY(CAS_TKXMesh TKXMesh ) +FIND_LIBRARY(CAS_TKXml TKXml ) +FIND_LIBRARY(CAS_TKXmlL TKXmlL ) +FIND_LIBRARY(CAS_TKXmlTObj TKXmlTObj ) +FIND_LIBRARY(CAS_TKXmlXCAF TKXmlXCAF ) +FIND_LIBRARY(CAS_TKXSBase TKXSBase ) + +SET(CAS_KERNEL ${CAS_TKernel} ${CAS_TKMath}) +SET(CAS_OCAF ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKCDF} ${CAS_TKLCAF}) +SET(CAS_VIEWER ${CAS_TKService} ${CAS_TKV3d} ${CAS_TKG3d} ${CAS_TKGeomBase} ${CAS_TKBRep}) +SET(CAS_OCAFVIS ${CAS_TKCAF} ${CAS_TKBRep} ${CAS_TKG2d}) +SET(CAS_MODELER ${CAS_TKG3d} ${CAS_TKGeomBase} ${CAS_TKGeomAlgo} ${CAS_TKBRep} ${CAS_TKTopAlgo} ${CAS_TKG2d}) + +SET(CAS_TKV3d_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKV3d}) +SET(CAS_TKBool_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKBRep} ${CAS_TKG2d} ${CAS_TKG3d} ${CAS_TKGeomBase} ${CAS_TKGeomAlgo} ${CAS_TKTopAlgo} ${CAS_TKBool}) +SET(CAS_TKBRep_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKBRep}) +SET(CAS_TKIGES_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKXSBase} ${CAS_TKBRep} ${CAS_TKIGES}) +SET(CAS_TKSTEP_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKXSBase} ${CAS_TKBRep} ${CAS_TKSTEP}) +SET(CAS_TKSTL_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKSTL}) +SET(CAS_TKCAF_EA ${CAS_TKPrim} ${CAS_TKCAF}) + +SET(CAS_TKV3d ${CAS_TKV3d_EA}) +SET(CAS_TKBool ${CAS_TKBool_EA}) +SET(CAS_TKBRep ${CAS_TKBRep_EA}) +SET(CAS_TKIGES ${CAS_TKIGES_EA}) +SET(CAS_TKSTEP ${CAS_TKSTEP_EA}) +SET(CAS_TKSTL ${CAS_TKSTL_EA}) +SET(CAS_TKCAF ${CAS_TKCAF_EA}) + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(CAS + REQUIRED_VARS CAS_INCLUDE_DIRS + CAS_FWOSPlugin + CAS_PTKernel + CAS_TKAdvTools + CAS_TKBin + CAS_TKBinL + CAS_TKBinTObj + CAS_TKBinXCAF + CAS_TKBO + CAS_TKBool + CAS_TKBRep + CAS_TKCAF + CAS_TKCDF + CAS_TKernel + CAS_TKFeat + CAS_TKFillet + CAS_TKG2d + CAS_TKG3d + CAS_TKGeomAlgo + CAS_TKGeomBase + CAS_TKHLR + CAS_TKIGES + CAS_TKLCAF + CAS_TKMath + CAS_TKMesh + CAS_TKMeshVS + CAS_TKNIS + CAS_TKOffset + CAS_TKOpenGl + CAS_TKPCAF + CAS_TKPLCAF + CAS_TKPrim + CAS_TKPShape + CAS_TKService + CAS_TKShapeSchema + CAS_TKShHealing + CAS_TKStdLSchema + CAS_TKStdSchema + CAS_TKSTEP + CAS_TKSTEP209 + CAS_TKSTEPAttr + CAS_TKSTEPBase + CAS_TKSTL + CAS_TKTObj + CAS_TKTopAlgo + CAS_TKV3d + CAS_TKVRML + CAS_TKXCAF + CAS_TKXCAFSchema + CAS_TKXDEIGES + CAS_TKXDESTEP + CAS_TKXMesh + CAS_TKXml + CAS_TKXmlL + CAS_TKXmlTObj + CAS_TKXmlXCAF + CAS_TKXSBase +) + +IF(CAS_FOUND AND NOT CAS_FIND_QUIETLY) + MESSAGE(STATUS "Found OpenCascade version: ${CAS_VERSION_STR}") +ENDIF() + + diff --git a/CMakeCommon/FindQt5.cmake b/CMakeCommon/FindQt5.cmake new file mode 100644 index 000000000..81ae7b18e --- /dev/null +++ b/CMakeCommon/FindQt5.cmake @@ -0,0 +1,24 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11) +#Append Qt5's install prefix into CMAKE_MODULE_PATH +SET(CMAKE_MODULE_PATH "$ENV{QTDIR}" ${CMAKE_MODULE_PATH}) + +SET(CMAKE_AUTOMOC ON) + +# Widgets finds its own dependencies (QtGui and QtCore). +FIND_PACKAGE(Qt5Widgets REQUIRED) +FIND_PACKAGE(Qt5LinguistTools REQUIRED) + +IF(Qt5Widgets_FOUND) + MESSAGE(STATUS "Found Qt version:" ${Qt5Widgets_VERSION_STRING}) +ENDIF() + +# The Qt5Widgets_INCLUDES also includes the include directories for +# dependencies QtCore and QtGui +INCLUDE_DIRECTORIES(${Qt5Widgets_INCLUDES}) + +# We need add -DQT_WIDGETS_LIB when using QtWidgets in Qt 5. +ADD_DEFINITIONS(${Qt5Widgets_DEFINITIONS}) + +# Executables fail to build with Qt 5 in the default configuration +# without -fPIE. We add that here. +SET(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}") diff --git a/CMakeCommon/Logger.cmake b/CMakeCommon/Logger.cmake new file mode 100644 index 000000000..1807183a0 --- /dev/null +++ b/CMakeCommon/Logger.cmake @@ -0,0 +1,150 @@ +# /* C++ comment style not allowed */ + + +# if you are building in-source, this is the same as CMAKE_SOURCE_DIR, otherwise +# this is the top level directory of your build tree +MESSAGE( STATUS "CMAKE_BINARY_DIR: " ${CMAKE_BINARY_DIR} ) + +# if you are building in-source, this is the same as CMAKE_CURRENT_SOURCE_DIR, otherwise this +# is the directory where the compiled or generated files from the current CMakeLists.txt will go to +MESSAGE( STATUS "CMAKE_CURRENT_BINARY_DIR: " ${CMAKE_CURRENT_BINARY_DIR} ) + +# this is the directory, from which cmake was started, i.e. the top level source directory +MESSAGE( STATUS "CMAKE_SOURCE_DIR: " ${CMAKE_SOURCE_DIR} ) + +# this is the directory where the currently processed CMakeLists.txt is located in +MESSAGE( STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR} ) + +# contains the full path to the top level directory of your build tree +MESSAGE( STATUS "PROJECT_BINARY_DIR: " ${PROJECT_BINARY_DIR} ) + +# contains the full path to the root of your project source directory, +# i.e. to the nearest directory where CMakeLists.txt contains the PROJECT() command +MESSAGE( STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} ) + +# set this variable to specify a common place where CMake should put all executable files +# (instead of CMAKE_CURRENT_BINARY_DIR) +MESSAGE( STATUS "EXECUTABLE_OUTPUT_PATH: " ${EXECUTABLE_OUTPUT_PATH} ) + +# set this variable to specify a common place where CMake should put all libraries +# (instead of CMAKE_CURRENT_BINARY_DIR) +MESSAGE( STATUS "LIBRARY_OUTPUT_PATH: " ${LIBRARY_OUTPUT_PATH} ) + +# tell CMake to search first in directories listed in CMAKE_MODULE_PATH +# when you use FIND_PACKAGE() or INCLUDE() +MESSAGE( STATUS "CMAKE_MODULE_PATH: " ${CMAKE_MODULE_PATH} ) + +# this is the complete path of the cmake which runs currently (e.g. /usr/local/bin/cmake) +MESSAGE( STATUS "CMAKE_COMMAND: " ${CMAKE_COMMAND} ) + +# this is the CMake installation directory +MESSAGE( STATUS "CMAKE_ROOT: " ${CMAKE_ROOT} ) + +# this is the filename including the complete path of the file where this variable is used. +MESSAGE( STATUS "CMAKE_CURRENT_LIST_FILE: " ${CMAKE_CURRENT_LIST_FILE} ) + +# this is linenumber where the variable is used +MESSAGE( STATUS "CMAKE_CURRENT_LIST_LINE: " ${CMAKE_CURRENT_LIST_LINE} ) + +# this is used when searching for include files e.g. using the FIND_PATH() command. +MESSAGE( STATUS "CMAKE_INCLUDE_PATH: " ${CMAKE_INCLUDE_PATH} ) + +# this is used when searching for libraries e.g. using the FIND_LIBRARY() command. +MESSAGE( STATUS "CMAKE_LIBRARY_PATH: " ${CMAKE_LIBRARY_PATH} ) + +# the complete system name, e.g. "Linux-2.4.22", "FreeBSD-5.4-RELEASE" or "Windows 5.1" +MESSAGE( STATUS "CMAKE_SYSTEM: " ${CMAKE_SYSTEM} ) + +# the short system name, e.g. "Linux", "FreeBSD" or "Windows" +MESSAGE( STATUS "CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME} ) + +# only the version part of CMAKE_SYSTEM +MESSAGE( STATUS "CMAKE_SYSTEM_VERSION: " ${CMAKE_SYSTEM_VERSION} ) + +# the processor name (e.g. "Intel(R) Pentium(R) M processor 2.00GHz") +MESSAGE( STATUS "CMAKE_SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR} ) + +# is TRUE on all UNIX-like OS's, including Apple OS X and CygWin +MESSAGE( STATUS "UNIX: " ${UNIX} ) + +# is TRUE on Windows, including CygWin +MESSAGE( STATUS "WIN32: " ${WIN32} ) + +# is TRUE on Apple OS X +MESSAGE( STATUS "APPLE: " ${APPLE} ) + +# is TRUE when using the MinGW compiler in Windows +MESSAGE( STATUS "MINGW: " ${MINGW} ) + +# is TRUE on Windows when using the CygWin version of cmake +MESSAGE( STATUS "CYGWIN: " ${CYGWIN} ) + +# is TRUE on Windows when using a Borland compiler +MESSAGE( STATUS "BORLAND: " ${BORLAND} ) + +# Microsoft compiler +MESSAGE( STATUS "MSVC: " ${MSVC} ) +MESSAGE( STATUS "MSVC_IDE: " ${MSVC_IDE} ) +MESSAGE( STATUS "MSVC60: " ${MSVC60} ) +MESSAGE( STATUS "MSVC70: " ${MSVC70} ) +MESSAGE( STATUS "MSVC71: " ${MSVC71} ) +MESSAGE( STATUS "MSVC80: " ${MSVC80} ) +MESSAGE( STATUS "CMAKE_COMPILER_2005: " ${CMAKE_COMPILER_2005} ) + + +# set this to true if you don't want to rebuild the object files if the rules have changed, +# but not the actual source files or headers (e.g. if you changed the some compiler switches) +MESSAGE( STATUS "CMAKE_SKIP_RULE_DEPENDENCY: " ${CMAKE_SKIP_RULE_DEPENDENCY} ) + +# since CMake 2.1 the install rule depends on all, i.e. everything will be built before installing. +# If you don't like this, set this one to true. +MESSAGE( STATUS "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY: " ${CMAKE_SKIP_INSTALL_ALL_DEPENDENCY} ) + +# If set, runtime paths are not added when using shared libraries. Default it is set to OFF +MESSAGE( STATUS "CMAKE_SKIP_RPATH: " ${CMAKE_SKIP_RPATH} ) + +# set this to true if you are using makefiles and want to see the full compile and link +# commands instead of only the shortened ones +MESSAGE( STATUS "CMAKE_VERBOSE_MAKEFILE: " ${CMAKE_VERBOSE_MAKEFILE} ) + +# this will cause CMake to not put in the rules that re-run CMake. This might be useful if +# you want to use the generated build files on another machine. +MESSAGE( STATUS "CMAKE_SUPPRESS_REGENERATION: " ${CMAKE_SUPPRESS_REGENERATION} ) + + +# A simple way to get switches to the compiler is to use ADD_DEFINITIONS(). +# But there are also two variables exactly for this purpose: + +# the compiler flags for compiling C sources +MESSAGE( STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS} ) + +# the compiler flags for compiling C++ sources +MESSAGE( STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS} ) + + +# Choose the type of build. Example: SET(CMAKE_BUILD_TYPE Debug) +MESSAGE( STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} ) + +# if this is set to ON, then all libraries are built as shared libraries by default. +MESSAGE( STATUS "BUILD_SHARED_LIBS: " ${BUILD_SHARED_LIBS} ) + +# the compiler used for C files +MESSAGE( STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER} ) + +# the compiler used for C++ files +MESSAGE( STATUS "CMAKE_CXX_COMPILER: " ${CMAKE_CXX_COMPILER} ) + +# if the compiler is a variant of gcc, this should be set to 1 +MESSAGE( STATUS "CMAKE_COMPILER_IS_GNUCC: " ${CMAKE_COMPILER_IS_GNUCC} ) + +# if the compiler is a variant of g++, this should be set to 1 +MESSAGE( STATUS "CMAKE_COMPILER_IS_GNUCXX : " ${CMAKE_COMPILER_IS_GNUCXX} ) + +# the tools for creating libraries +MESSAGE( STATUS "CMAKE_AR: " ${CMAKE_AR} ) +MESSAGE( STATUS "CMAKE_RANLIB: " ${CMAKE_RANLIB} ) + +# +#MESSAGE( STATUS ": " ${} ) + +# ------------------------- End of Generic CMake Variable Logging ------------------ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..424fe2e6e --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,5 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11) + +PROJECT (NewGEOM) + +SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeCommon" ${CMAKE_MODULE_PATH})