@@ -26,15 +26,42 @@ if(CMAKE_BUILD_TYPE STREQUAL "")
2626endif ()
2727
2828# Get MADS prefix
29- execute_process (
30- COMMAND mads -p
31- OUTPUT_VARIABLE MADS_PREFIX_RAW
32- OUTPUT_STRIP_TRAILING_WHITESPACE
33- )
29+ set (MADS_ROOT "" CACHE PATH "Path to the MADS installation prefix" )
30+ if (MADS_ROOT)
31+ set (MADS_PREFIX_RAW "${MADS_ROOT} " )
32+ elseif (DEFINED ENV{MADS_ROOT} AND NOT "$ENV{MADS_ROOT} " STREQUAL "" )
33+ set (MADS_PREFIX_RAW "$ENV{MADS_ROOT} " )
34+ else ()
35+ execute_process (
36+ COMMAND mads -p
37+ RESULT_VARIABLE MADS_PREFIX_RESULT
38+ OUTPUT_VARIABLE MADS_PREFIX_RAW
39+ ERROR_VARIABLE MADS_PREFIX_ERROR
40+ OUTPUT_STRIP_TRAILING_WHITESPACE
41+ ERROR_STRIP_TRAILING_WHITESPACE
42+ )
43+ if (NOT MADS_PREFIX_RESULT STREQUAL "0" OR MADS_PREFIX_RAW STREQUAL "" )
44+ message (FATAL_ERROR
45+ "Could not determine the MADS installation prefix. "
46+ "Set -DMADS_ROOT=<path> or make sure 'mads -p' works."
47+ )
48+ endif ()
49+ endif ()
50+ string (STRIP "${MADS_PREFIX_RAW} " MADS_PREFIX_RAW)
3451file (TO_CMAKE_PATH "${MADS_PREFIX_RAW} " MADS_PREFIX )
35- include_directories (${MADS_PREFIX} /include )
36- link_directories (${MADS_PREFIX} /lib )
37- set_property (CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE ${MADS_PREFIX} )
52+ set (MADS_ROOT "${MADS_PREFIX} " CACHE PATH "Path to the MADS installation prefix" FORCE )
53+ if (NOT EXISTS "${MADS_PREFIX} /include/agent.hpp" )
54+ message (FATAL_ERROR
55+ "MADS headers not found at '${MADS_PREFIX} /include'. "
56+ "Set -DMADS_ROOT to a valid MADS installation prefix."
57+ )
58+ endif ()
59+
60+ include_directories ("${MADS_PREFIX} /include" )
61+ link_directories ("${MADS_PREFIX} /lib" )
62+ if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
63+ set (CMAKE_INSTALL_PREFIX "${MADS_PREFIX} " CACHE PATH "Install prefix" FORCE )
64+ endif ()
3865
3966if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.30" )
4067 # No warning on FetchContent_Populate
0 commit comments