| 
					
				 | 
			
			
				@@ -7,16 +7,21 @@ Normally an executable does not export any symbols because it is the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 final program.  It is possible for an executable to export symbols to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 be used by loadable modules.  When this property is set to true CMake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 will allow other targets to "link" to the executable with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-:command:`TARGET_LINK_LIBRARIES` command.  On all platforms a target-level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+:command:`target_link_libraries` command.  On all platforms a target-level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 dependency on the executable is created for targets that link to it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-For DLL platforms an import library will be created for the exported 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-symbols and then used for linking.  All Windows-based systems 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-including Cygwin are DLL platforms.  For non-DLL platforms that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-require all symbols to be resolved at link time, such as macOS, the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-module will "link" to the executable using a flag like 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-``-bundle_loader``.  For other non-DLL platforms the link rule is simply 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-ignored since the dynamic loader will automatically bind symbols when 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-the module is loaded. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Handling of the executable on the link lines of the loadable modules 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+varies by platform: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* On Windows-based systems (including Cygwin) an "import library" is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  created along with the executable to list the exported symbols. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Loadable modules link to the import library to get the symbols. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* On macOS, loadable modules link to the executable itself using the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``-bundle_loader`` flag. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* On other platforms, loadable modules are simply linked without 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  referencing the executable since the dynamic loader will 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  automatically bind symbols when the module is loaded. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 This property is initialized by the value of the variable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 :variable:`CMAKE_ENABLE_EXPORTS` if it is set when a target is created. 
			 |