11set_property (DIRECTORY PROPERTY LABELS bool)
22
3+ check_source_compiles (Fortran "program test
4+ integer, parameter :: lk = selected_logical_kind(1)
5+ end program"
6+ f23logical_kind )
7+
8+ if (f23logical_kind)
9+ file (GENERATE OUTPUT logical_kind.inc CONTENT "integer, parameter :: lk = selected_logical_kind(64)" )
10+ else ()
11+ file (GENERATE OUTPUT logical_kind.inc CONTENT "integer, parameter :: lk = 8" )
12+ endif ()
13+
314add_library (bool_fortran OBJECT ${PROJECT_SOURCE_DIR } /src/bool/logbool.f90 )
415target_include_directories (bool_fortran INTERFACE ${PROJECT_SOURCE_DIR } /src/bool )
516
@@ -19,12 +30,13 @@ add_test(NAME Cpp_Fortran_bool COMMAND cxx_fortran_bool)
1930
2031add_executable (fortran_cxx_bool main.f90 )
2132target_link_libraries (fortran_cxx_bool PRIVATE bool_cxx )
33+ target_include_directories (fortran_cxx_bool PRIVATE ${CMAKE_CURRENT_BINARY_DIR } )
2234set_property (TARGET fortran_cxx_bool PROPERTY LINKER_LANGUAGE ${linker_lang} )
2335add_test (NAME Fortran_Cpp_bool COMMAND fortran_cxx_bool )
2436
2537add_executable (fortran_c_bool main.f90 )
2638target_link_libraries (fortran_c_bool PRIVATE bool_c )
27- set_property ( TARGET fortran_c_bool PROPERTY LINKER_LANGUAGE Fortran )
39+ target_include_directories ( fortran_c_bool PRIVATE ${ CMAKE_CURRENT_BINARY_DIR } )
2840add_test (NAME Fortran_C_bool COMMAND fortran_c_bool )
2941
3042add_executable (c_cxx_bool main.c )
@@ -38,11 +50,14 @@ add_test(NAME Cpp_C_bool COMMAND cxx_c_bool)
3850
3951add_executable (fortran_c_bad_bool bad_interface.f90 )
4052target_link_libraries (fortran_c_bad_bool PRIVATE bool_c )
41- set_property ( TARGET fortran_c_bad_bool PROPERTY LINKER_LANGUAGE Fortran )
53+ target_include_directories ( fortran_c_bad_bool PRIVATE ${ CMAKE_CURRENT_BINARY_DIR } )
4254add_test (NAME Fortran_C_bad_bool COMMAND ${CMAKE_COMMAND } -E env $<TARGET_FILE :fortran_c_bad_bool >)
4355
4456add_library (bad_bool_fortran OBJECT ${PROJECT_SOURCE_DIR } /src/bool/bad_bool.f90 )
45- target_include_directories (bad_bool_fortran INTERFACE ${PROJECT_SOURCE_DIR } /src/bool )
57+ target_include_directories (bad_bool_fortran
58+ INTERFACE ${PROJECT_SOURCE_DIR } /src/bool
59+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR }
60+ )
4661
4762add_executable (c_fortran_bad_bool main.c )
4863target_link_libraries (c_fortran_bad_bool PRIVATE bad_bool_fortran )
@@ -53,4 +68,6 @@ target_link_libraries(cxx_fortran_bad_bool PRIVATE bad_bool_fortran)
5368add_test (NAME Cpp_Fortran_bad_bool COMMAND ${CMAKE_COMMAND } -E env $<TARGET_FILE :cxx_fortran_bad_bool >)
5469
5570set_tests_properties (C_Fortran_bad_bool Fortran_C_bad_bool Cpp_Fortran_bad_bool PROPERTIES WILL_FAIL true )
71+
5672set_target_properties (c_fortran_bool c_fortran_bad_bool PROPERTIES LINKER_LANGUAGE C)
73+ set_target_properties (fortran_c_bool fortran_c_bad_bool PROPERTIES LINKER_LANGUAGE Fortran)
0 commit comments