Commit 0a379e7e authored by Christoph Richter's avatar Christoph Richter
Browse files

Give Environment Variable as Hint to find_package by default

parent 37a70d2a
Pipeline #65302 failed with stage
in 16 seconds
...@@ -5,9 +5,17 @@ ...@@ -5,9 +5,17 @@
# EMAM2Cpp # EMAM2Cpp
##CMake Generation: ##CMake Generation:
* Available since version 0.0.22-SNAPSHOT. * Available since version 0.0.22-SNAPSHOT.
###Interface in Java Code
* If `isGenerateCMakeEnabled()` additionally to the C++ files _CMakeLists.txt_ is generated. * If `isGenerateCMakeEnabled()` additionally to the C++ files _CMakeLists.txt_ is generated.
This CMake file builds a static library out of the generated components. This CMake file builds a static library out of the generated components.
* Find package (https://cmake.org/cmake/help/v3.8/command/find_package.html?highlight=i) can be configured via public method `getCMakeConfig()` from the generator class. FindModule files are generated automatically which searches for header include directories and libraries at default locations. * Find package (https://cmake.org/cmake/help/v3.8/command/find_package.html?highlight=i) can be configured via public method `getCMakeConfig()` from the generator class. FindModule files are generated automatically which searches for header include directories and libraries at default locations.
* Example: `getCMakeConfig().addModuleDependency(new CMakeFindModule("LibName", "LibHeader.hpp", "libname", headerSearchPaths, bibrarySearchPaths, findHeaderEnabled, findLibEnabled, isRequiered));` * Example: `getCMakeConfig().addModuleDependency(new CMakeFindModule("LibName", "LibHeader.hpp", "libname", headerSearchPaths, bibrarySearchPaths, findHeaderEnabled, findLibEnabled, isRequiered));`
* Additionally any CMake command can be inserted via `getCMakeConfig().addCMakeCommand("CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -Wno-deprecated\"")`or at the end via `addCMakeCommandEnd("#some command at the end")` * Additionally any CMake command can be inserted via `getCMakeConfig().addCMakeCommand("CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -Wno-deprecated\"")`or at the end via `addCMakeCommandEnd("#some command at the end")`
\ No newline at end of file
### Note on find_package
If no search directory is specified CMake will search on default locations. For linux this is _/usr/lib_ , _usr/local/lib_ , _usr/include_ etc. Windows systems does not have a default library path. The generated CMake files also are using environment variables as hint. If a package could not be found but it is installed somewhere on the system please create an environment variable **PackageName_HOME**.
Here an example for Armadillo:
Create a environment variable called _Armadillo_Home_ with the path to the base directory of your Armadillo installation.
\ No newline at end of file
...@@ -15,16 +15,18 @@ find_path(${viewModel.packageName}_INCLUDE_DIR ...@@ -15,16 +15,18 @@ find_path(${viewModel.packageName}_INCLUDE_DIR
<#list viewModel.includePaths as var> <#list viewModel.includePaths as var>
"${var}" "${var}"
</#list> </#list>
HINTS $ENV{${viewModel.packageName}_HOME}
) )
</#if> </#if>
<#if viewModel.findLibrary> <#if viewModel.findLibrary>
find_library(${viewModel.packageName}_LIBRARY find_library(${viewModel.packageName}_LIBRARY
NAMES ${viewModel.libName} NAMES ${viewModel.libName}
PATH_SUFFIXES "lib" "lib64" "lib/x86_64-linux-gnu" "examples/lib_win64" "build" PATH_SUFFIXES "lib" "lib64" "lib/x86_64-linux-gnu" "examples/lib_win64" "build" "Release"
PATHS PATHS
<#list viewModel.libPaths as var> <#list viewModel.libPaths as var>
"${var}" "${var}"
</#list> </#list>
HINTS $ENV{${viewModel.packageName}_HOME}
) )
</#if> </#if>
......
...@@ -11,11 +11,13 @@ find_path(Armadillo_INCLUDE_DIR ...@@ -11,11 +11,13 @@ find_path(Armadillo_INCLUDE_DIR
NAMES armadillo NAMES armadillo
PATH_SUFFIXES "include" PATH_SUFFIXES "include"
PATHS PATHS
HINTS $ENV{Armadillo_HOME}
) )
find_library(Armadillo_LIBRARY find_library(Armadillo_LIBRARY
NAMES armadillo NAMES armadillo
PATH_SUFFIXES "lib" "lib64" "lib/x86_64-linux-gnu" "examples/lib_win64" "build" PATH_SUFFIXES "lib" "lib64" "lib/x86_64-linux-gnu" "examples/lib_win64" "build" "Release"
PATHS PATHS
HINTS $ENV{Armadillo_HOME}
) )
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
......
...@@ -11,11 +11,13 @@ find_path(Armadillo_INCLUDE_DIR ...@@ -11,11 +11,13 @@ find_path(Armadillo_INCLUDE_DIR
NAMES armadillo NAMES armadillo
PATH_SUFFIXES "include" PATH_SUFFIXES "include"
PATHS PATHS
HINTS $ENV{Armadillo_HOME}
) )
find_library(Armadillo_LIBRARY find_library(Armadillo_LIBRARY
NAMES armadillo NAMES armadillo
PATH_SUFFIXES "lib" "lib64" "lib/x86_64-linux-gnu" "examples/lib_win64" "build" PATH_SUFFIXES "lib" "lib64" "lib/x86_64-linux-gnu" "examples/lib_win64" "build" "Release"
PATHS PATHS
HINTS $ENV{Armadillo_HOME}
) )
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment