22from conan .errors import ConanInvalidConfiguration
33from conan .tools .files import get , copy
44from conan .tools .build import check_min_cppstd
5- from conan .tools .scm import Version
65from conan .tools .cmake import CMake , CMakeToolchain , cmake_layout
76
87import os
98
10- required_conan_version = ">=1.53.0 "
9+ required_conan_version = ">=2 "
1110
1211class LuauConan (ConanFile ):
1312 name = "luau"
@@ -29,34 +28,14 @@ class LuauConan(ConanFile):
2928 "native_code_gen" : False ,
3029 }
3130
32- @property
33- def _minimum_cpp_standard (self ):
34- return 17
35-
36- @property
37- def _compilers_minimum_version (self ):
38- return {
39- "gcc" : "9" ,
40- "clang" : "7" ,
41- "apple-clang" : "12" ,
42- "Visual Studio" : "15" ,
43- "msvc" : "191" ,
44- }
45-
4631 def export_sources (self ):
4732 copy (self , "CMakeLists.txt" , self .recipe_folder , self .export_sources_folder )
4833
4934 def layout (self ):
5035 cmake_layout (self , src_folder = "src" )
5136
5237 def validate (self ):
53- if self .settings .compiler .cppstd :
54- check_min_cppstd (self , self ._minimum_cpp_standard )
55- minimum_version = self ._compilers_minimum_version .get (str (self .settings .compiler ), False )
56- if minimum_version and Version (self .settings .compiler .version ) < minimum_version :
57- raise ConanInvalidConfiguration (
58- f"{ self .ref } requires C++{ self ._minimum_cpp_standard } , which your compiler does not support."
59- )
38+ check_min_cppstd (self , 17 )
6039
6140 def source (self ):
6241 get (self , ** self .conan_data ["sources" ][self .version ], strip_root = True )
@@ -85,40 +64,42 @@ def package(self):
8564 def package_info (self ):
8665 self .cpp_info .set_property ("cmake_file_name" , "Luau" )
8766 self .cpp_info .set_property ("cmake_target_name" , "Luau::Luau" )
88-
89- self .cpp_info .filenames ["cmake_find_package" ] = "Luau"
90- self .cpp_info .filenames ["cmake_find_package_multi" ] = "Luau"
91- self .cpp_info .names ["cmake_find_package_multi" ] = "Luau"
92- self .cpp_info .names ["cmake_find_package" ] = "Luau"
93-
67+ # Common
68+ self .cpp_info .components ["Common" ].libs = ["Luau.Common" ]
69+ self .cpp_info .components ["Common" ].set_property ("cmake_target_name" , "Luau::Common" )
70+ # Ast
9471 self .cpp_info .components ["Ast" ].libs = ["Luau.Ast" ]
9572 self .cpp_info .components ["Ast" ].set_property ("cmake_target_name" , "Luau::Ast" )
96-
73+ self .cpp_info .components ["Ast" ].requires = ["Common" ]
74+ # VM
9775 self .cpp_info .components ["VM" ].libs = ["Luau.VM" ]
9876 self .cpp_info .components ["VM" ].set_property ("cmake_target_name" , "Luau::VM" )
99- self .cpp_info .components ["VM" ].requires = ["Ast " ]
77+ self .cpp_info .components ["VM" ].requires = ["Common " ]
10078 if self .settings .os in ["Linux" , "FreeBSD" ]:
10179 self .cpp_info .components ["VM" ].system_libs = ["m" ]
102-
80+ # Analysis
10381 self .cpp_info .components ["Analysis" ].libs = ["Luau.Analysis" ]
10482 self .cpp_info .components ["Analysis" ].set_property ("cmake_target_name" , "Luau::Analysis" )
105- self .cpp_info .components ["Analysis" ].requires = ["Ast" ]
106-
83+ self .cpp_info .components ["Analysis" ].requires = ["Ast" , "Config" , "Compiler" , "VM" ]
84+ # Config
85+ self .cpp_info .components ["Config" ].libs = ["Luau.Config" ]
86+ self .cpp_info .components ["Config" ].set_property ("cmake_target_name" , "Luau::Config" )
87+ self .cpp_info .components ["Config" ].requires = ["Ast" , "Compiler" , "VM" ]
88+ # Compiler
10789 self .cpp_info .components ["Compiler" ].libs = ["Luau.Compiler" ]
10890 self .cpp_info .components ["Compiler" ].set_property ("cmake_target_name" , "Luau::Compiler" )
10991 self .cpp_info .components ["Compiler" ].requires = ["Ast" ]
110-
92+ # CodeGen
11193 self .cpp_info .components ["CodeGen" ].libs = ["Luau.CodeGen" ]
11294 self .cpp_info .components ["CodeGen" ].set_property ("cmake_target_name" , "Luau::CodeGen" )
113- self .cpp_info .components ["CodeGen" ].requires = ["Ast" ]
114- self .cpp_info .components ["CodeGen" ].requires .append ("VM" )
115-
116- if self .options .with_cli :
117- bin_path = os .path .join (self .package_folder , "bin" )
118- self .output .info (f"Appending PATH environment variable: { bin_path } " )
119- self .env_info .PATH .append (bin_path )
120-
95+ self .cpp_info .components ["CodeGen" ].requires = ["VM" , "Common" ]
96+ # Require
97+ self .cpp_info .components ["Require" ].libs = ["Luau.Require" ]
98+ self .cpp_info .components ["Require" ].set_property ("cmake_target_name" , "Luau::Require" )
99+ self .cpp_info .components ["Require" ].requires = ["Config" , "VM" ]
100+ # Web
121101 if self .options .with_web :
122102 self .cpp_info .components ["Web" ].libs = ["Luau.Web" ]
123103 self .cpp_info .components ["Web" ].set_property ("cmake_target_name" , "Luau::Web" )
124- self .cpp_info .components ["Web" ].requires = ["Compiler" , "VM" ]
104+ self .cpp_info .components ["Web" ].requires = ["Compiler" , "VM" , "Analysis" ]
105+
0 commit comments