@@ -25,6 +25,7 @@ class ConanSqlite3(ConanFile):
25
25
"omit_load_extension" : [True , False ],
26
26
"enable_unlock_notify" : [True , False ],
27
27
"disable_gethostuuid" : [True , False ],
28
+ "build_executable" : [True , False ],
28
29
}
29
30
default_options = {"shared" : False ,
30
31
"fPIC" : True ,
@@ -39,15 +40,14 @@ class ConanSqlite3(ConanFile):
39
40
"omit_load_extension" : False ,
40
41
"enable_unlock_notify" : True ,
41
42
"disable_gethostuuid" : False ,
43
+ "build_executable" : True ,
42
44
}
43
- _source_subfolder = "source_subfolder"
44
45
45
- def source (self ):
46
- tools .get (** self .conan_data ["sources" ][self .version ])
47
- url = self .conan_data ["sources" ][self .version ]["url" ]
48
- archive_name = os .path .basename (url )
49
- archive_name = os .path .splitext (archive_name )[0 ]
50
- os .rename (archive_name , self ._source_subfolder )
46
+ _cmake = None
47
+
48
+ @property
49
+ def _source_subfolder (self ):
50
+ return "source_subfolder"
51
51
52
52
def config_options (self ):
53
53
if self .settings .os == "Windows" :
@@ -57,35 +57,37 @@ def configure(self):
57
57
del self .settings .compiler .libcxx
58
58
del self .settings .compiler .cppstd
59
59
60
+ def source (self ):
61
+ tools .get (** self .conan_data ["sources" ][self .version ])
62
+ url = self .conan_data ["sources" ][self .version ]["url" ]
63
+ archive_name = os .path .basename (url )
64
+ archive_name = os .path .splitext (archive_name )[0 ]
65
+ os .rename (archive_name , self ._source_subfolder )
66
+
60
67
def _configure_cmake (self ):
61
- cmake = CMake (self )
62
- cmake .definitions ["THREADSAFE" ] = self .options .threadsafe
63
- cmake .definitions ["ENABLE_COLUMN_METADATA" ] = self .options .enable_column_metadata
64
- cmake .definitions ["ENABLE_EXPLAIN_COMMENTS" ] = self .options .enable_explain_comments
65
- cmake .definitions ["ENABLE_FTS3" ] = self .options .enable_fts3
66
- cmake .definitions ["ENABLE_FTS4" ] = self .options .enable_fts4
67
- cmake .definitions ["ENABLE_FTS5" ] = self .options .enable_fts5
68
- cmake .definitions ["ENABLE_JSON1" ] = self .options .enable_json1
69
- cmake .definitions ["ENABLE_RTREE" ] = self .options .enable_rtree
70
- cmake .definitions ["OMIT_LOAD_EXTENSION" ] = self .options .omit_load_extension
71
- cmake .definitions ["SQLITE_ENABLE_UNLOCK_NOTIFY" ] = self .options .enable_unlock_notify
72
- cmake .definitions ["HAVE_FDATASYNC" ] = True
73
- cmake .definitions ["HAVE_GMTIME_R" ] = True
74
- cmake .definitions ["HAVE_LOCALTIME_R" ] = True
75
- cmake .definitions ["HAVE_POSIX_FALLOCATE" ] = True
76
- cmake .definitions ["HAVE_STRERROR_R" ] = True
77
- cmake .definitions ["HAVE_USLEEP" ] = True
78
- if self .settings .os == "Windows" :
79
- cmake .definitions ["HAVE_LOCALTIME_R" ] = False
80
- cmake .definitions ["HAVE_POSIX_FALLOCATE" ] = False
81
- if tools .is_apple_os (self .settings .os ):
82
- cmake .definitions ["HAVE_POSIX_FALLOCATE" ] = False
83
- if self .settings .os == "Android" :
84
- cmake .definitions ["HAVE_POSIX_FALLOCATE" ] = False
85
- if self .options .disable_gethostuuid :
86
- cmake .definitions ["DISABLE_GETHOSTUUID" ] = True
87
- cmake .configure ()
88
- return cmake
68
+ if self ._cmake :
69
+ return self ._cmake
70
+ self ._cmake = CMake (self )
71
+ self ._cmake .definitions ["SQLITE3_BUILD_EXECUTABLE" ] = self .options .build_executable
72
+ self ._cmake .definitions ["THREADSAFE" ] = self .options .threadsafe
73
+ self ._cmake .definitions ["ENABLE_COLUMN_METADATA" ] = self .options .enable_column_metadata
74
+ self ._cmake .definitions ["ENABLE_EXPLAIN_COMMENTS" ] = self .options .enable_explain_comments
75
+ self ._cmake .definitions ["ENABLE_FTS3" ] = self .options .enable_fts3
76
+ self ._cmake .definitions ["ENABLE_FTS4" ] = self .options .enable_fts4
77
+ self ._cmake .definitions ["ENABLE_FTS5" ] = self .options .enable_fts5
78
+ self ._cmake .definitions ["ENABLE_JSON1" ] = self .options .enable_json1
79
+ self ._cmake .definitions ["ENABLE_RTREE" ] = self .options .enable_rtree
80
+ self ._cmake .definitions ["OMIT_LOAD_EXTENSION" ] = self .options .omit_load_extension
81
+ self ._cmake .definitions ["SQLITE_ENABLE_UNLOCK_NOTIFY" ] = self .options .enable_unlock_notify
82
+ self ._cmake .definitions ["HAVE_FDATASYNC" ] = True
83
+ self ._cmake .definitions ["HAVE_GMTIME_R" ] = True
84
+ self ._cmake .definitions ["HAVE_LOCALTIME_R" ] = self .settings .os != "Windows"
85
+ self ._cmake .definitions ["HAVE_POSIX_FALLOCATE" ] = not (self .settings .os in ["Windows" , "Android" ] or tools .is_apple_os (self .settings .os ))
86
+ self ._cmake .definitions ["HAVE_STRERROR_R" ] = True
87
+ self ._cmake .definitions ["HAVE_USLEEP" ] = True
88
+ self ._cmake .definitions ["DISABLE_GETHOSTUUID" ] = self .options .disable_gethostuuid
89
+ self ._cmake .configure ()
90
+ return self ._cmake
89
91
90
92
def build (self ):
91
93
cmake = self ._configure_cmake ()
@@ -94,17 +96,14 @@ def build(self):
94
96
def package (self ):
95
97
header = tools .load (os .path .join (self ._source_subfolder , "sqlite3.h" ))
96
98
license_content = header [3 :header .find ("***" , 1 )]
97
- tools .save ("LICENSE" , license_content )
98
-
99
- self .copy ("LICENSE" , dst = "licenses" )
100
-
99
+ tools .save (os .path .join (self .package_folder , "licenses" , "LICENSE" ), license_content )
101
100
cmake = self ._configure_cmake ()
102
101
cmake .install ()
103
102
104
103
def package_info (self ):
105
104
self .cpp_info .libs = tools .collect_libs (self )
106
105
if self .settings .os == "Linux" :
107
106
if self .options .threadsafe :
108
- self .cpp_info .libs .append ("pthread" )
109
- if self .options .omit_load_extension == "False" :
110
- self .cpp_info .libs .append ("dl" )
107
+ self .cpp_info .system_libs .append ("pthread" )
108
+ if not self .options .omit_load_extension :
109
+ self .cpp_info .system_libs .append ("dl" )
0 commit comments