We fake a plain (non-scoped) library, but we don't actually set the library to anything valid. In result, it is never actually linked.
		
			
				
	
	
		
			22 lines
		
	
	
		
			858 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			858 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
# nlohmann-json is a custom addition to the emscripten SDK, so it is possible
 | 
						|
# someone patched their SDK. Test out if the SDK supports nlohmann-json.
 | 
						|
include(CheckCXXSourceCompiles)
 | 
						|
set(CMAKE_REQUIRED_FLAGS "-sUSE_NLOHMANN_JSON=1")
 | 
						|
 | 
						|
check_cxx_source_compiles("
 | 
						|
    #include <nlohmann/json.hpp>
 | 
						|
    int main() { return 0; }"
 | 
						|
    nlohmann_json_FOUND
 | 
						|
)
 | 
						|
 | 
						|
if (nlohmann_json_FOUND)
 | 
						|
        add_library(nlohmann_json INTERFACE IMPORTED)
 | 
						|
        set_target_properties(nlohmann_json PROPERTIES
 | 
						|
                INTERFACE_COMPILE_OPTIONS "-sUSE_NLOHMANN_JSON=1"
 | 
						|
                INTERFACE_LINK_LIBRARIES "-sUSE_NLOHMANN_JSON=1"
 | 
						|
        )
 | 
						|
        set(nlohmann_json_LIBRARY "nlohmann_json")
 | 
						|
else()
 | 
						|
        message(WARNING "You are using an emscripten SDK without nlohmann-json support. Please apply 'emsdk-nlohmann_json.patch' to your local emsdk installation.")
 | 
						|
endif()
 |