mirror of
https://github.com/reactos/CMake.git
synced 2025-02-07 12:26:40 +00:00
Tutorial: Update Step 5 to work on Windows
`log` and `exp` should be found on Windows systems now, as expected. Update tests to be more specific in looking for the expected outcome of the tutorial.
This commit is contained in:
parent
21d72777fb
commit
07223c5c27
@ -8,10 +8,20 @@ target_include_directories(MathFunctions
|
||||
|
||||
# does this system provide the log and exp functions?
|
||||
include(CheckSymbolExists)
|
||||
set(CMAKE_REQUIRED_LIBRARIES "m")
|
||||
check_symbol_exists(log "math.h" HAVE_LOG)
|
||||
check_symbol_exists(exp "math.h" HAVE_EXP)
|
||||
if(NOT (HAVE_LOG AND HAVE_EXP))
|
||||
unset(HAVE_LOG CACHE)
|
||||
unset(HAVE_EXP CACHE)
|
||||
set(CMAKE_REQUIRED_LIBRARIES "m")
|
||||
check_symbol_exists(log "math.h" HAVE_LOG)
|
||||
check_symbol_exists(exp "math.h" HAVE_EXP)
|
||||
if(HAVE_LOG AND HAVE_EXP)
|
||||
target_link_libraries(MathFunctions PRIVATE m)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# add compile definitions
|
||||
if(HAVE_LOG AND HAVE_EXP)
|
||||
target_compile_definitions(MathFunctions
|
||||
PRIVATE "HAVE_LOG" "HAVE_EXP")
|
||||
|
@ -386,7 +386,7 @@ these functions using the :module:`CheckSymbolExists` module in the top-level
|
||||
.. literalinclude:: Step6/MathFunctions/CMakeLists.txt
|
||||
:language: cmake
|
||||
:start-after: # does this system provide the log and exp functions?
|
||||
:end-before: if(HAVE_LOG AND HAVE_EXP)
|
||||
:end-before: # add compile definitions
|
||||
|
||||
Now let's add these defines to ``TutorialConfig.h.in`` so that we can use them
|
||||
from ``mysqrt.cxx``:
|
||||
|
@ -1605,7 +1605,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
|
||||
DEPENDS ExternalProjectUpdateSetup )
|
||||
|
||||
# do each of the tutorial steps
|
||||
function(add_tutorial_test step_name use_mymath)
|
||||
function(add_tutorial_test step_name use_mymath tutorial_arg pass_regex)
|
||||
set(tutorial_test_name Tutorial${step_name})
|
||||
set(tutorial_build_dir "${CMake_BINARY_DIR}/Tests/Tutorial/${step_name}")
|
||||
if (use_mymath)
|
||||
@ -1623,19 +1623,28 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
|
||||
${build_generator_args}
|
||||
--build-project Tutorial
|
||||
--build-options ${tutorial_build_options}
|
||||
--test-command Tutorial 25.0)
|
||||
--test-command Tutorial ${tutorial_arg})
|
||||
set_tests_properties(${tutorial_test_name} PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION ${pass_regex})
|
||||
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/${tutorial_build_dir}_Build")
|
||||
endfunction()
|
||||
|
||||
if(NOT CMake_TEST_EXTERNAL_CMAKE)
|
||||
foreach(STP RANGE 2 12)
|
||||
add_tutorial_test(Step${STP} TRUE)
|
||||
if (STP EQUAL 6)
|
||||
set(pass_regex ".*using log and exp")
|
||||
else()
|
||||
set(pass_regex "The square root of 25 is 5")
|
||||
endif()
|
||||
add_tutorial_test(Step${STP} TRUE 25 ${pass_regex})
|
||||
endforeach()
|
||||
add_tutorial_test(Complete TRUE)
|
||||
set(pass_regex "The square root of 25 is 5")
|
||||
add_tutorial_test(Complete TRUE 25 ${pass_regex})
|
||||
foreach(STP RANGE 3 12)
|
||||
add_tutorial_test(Step${STP} FALSE)
|
||||
add_tutorial_test(Step${STP} FALSE 25 ${pass_regex})
|
||||
endforeach()
|
||||
add_tutorial_test(Complete FALSE)
|
||||
add_tutorial_test(Complete FALSE 25 ${pass_regex})
|
||||
endif()
|
||||
|
||||
add_test(testing ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE}
|
||||
|
Loading…
x
Reference in New Issue
Block a user