mirror of
				https://github.com/ml-explore/mlx.git
				synced 2025-11-01 00:28:11 +08:00 
			
		
		
		
	Fix shared library not exporting symbols on Windows (#1684)
* Fix shared library not exporting symbols on Windows * Function name style
This commit is contained in:
		| @@ -23,6 +23,11 @@ if(MSVC) | ||||
|   target_compile_options(mlx PUBLIC /wd4068 /wd4244 /wd4267 /wd4804) | ||||
| endif() | ||||
|  | ||||
| if(WIN32) | ||||
|   # Export symbols by default to behave like macOS/linux. | ||||
|   set_target_properties(mlx PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) | ||||
| endif() | ||||
|  | ||||
| if(MLX_BUILD_CPU) | ||||
|   add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/backend/common) | ||||
| else() | ||||
|   | ||||
| @@ -56,7 +56,10 @@ inline void PrintFormatter::print(std::ostream& os, complex64_t val) { | ||||
|   os << val; | ||||
| } | ||||
|  | ||||
| PrintFormatter global_formatter; | ||||
| PrintFormatter& get_global_formatter() { | ||||
|   static PrintFormatter formatter; | ||||
|   return formatter; | ||||
| } | ||||
|  | ||||
| Dtype result_type(const std::vector<array>& arrays) { | ||||
|   Dtype t = bool_; | ||||
| @@ -171,7 +174,7 @@ void print_subarray(std::ostream& os, const array& a, size_t index, int dim) { | ||||
|       i = n - num_print - 1; | ||||
|       index += s * (n - 2 * num_print - 1); | ||||
|     } else if (is_last) { | ||||
|       global_formatter.print(os, a.data<T>()[index]); | ||||
|       get_global_formatter().print(os, a.data<T>()[index]); | ||||
|     } else { | ||||
|       print_subarray<T>(os, a, index, dim + 1); | ||||
|     } | ||||
| @@ -187,7 +190,7 @@ void print_array(std::ostream& os, const array& a) { | ||||
|   os << "array("; | ||||
|   if (a.ndim() == 0) { | ||||
|     auto data = a.data<T>(); | ||||
|     global_formatter.print(os, data[0]); | ||||
|     get_global_formatter().print(os, data[0]); | ||||
|   } else { | ||||
|     print_subarray<T>(os, a, 0, 0); | ||||
|   } | ||||
|   | ||||
| @@ -51,7 +51,7 @@ struct PrintFormatter { | ||||
|   bool capitalize_bool{false}; | ||||
| }; | ||||
|  | ||||
| extern PrintFormatter global_formatter; | ||||
| PrintFormatter& get_global_formatter(); | ||||
|  | ||||
| /** The type from promoting the arrays' types with one another. */ | ||||
| inline Dtype result_type(const array& a, const array& b) { | ||||
|   | ||||
| @@ -85,7 +85,7 @@ class ArrayPythonIterator { | ||||
|  | ||||
| void init_array(nb::module_& m) { | ||||
|   // Set Python print formatting options | ||||
|   mlx::core::global_formatter.capitalize_bool = true; | ||||
|   get_global_formatter().capitalize_bool = true; | ||||
|  | ||||
|   // Types | ||||
|   nb::class_<Dtype>( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Cheng
					Cheng