Skip to content

Commit 23e2e8e

Browse files
Make build mixin lib automatic
1 parent cce2359 commit 23e2e8e

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

build-linux.sh

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
python3 src/check_modification.py src/mixin
12
CC=clang CXX=clang++ python3 setup.py sdist bdist_wheel

build-mac.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
#rm src/mixin/libmixin.a
1+
python3 src/check_modification.py src/mixin
22
CC=clang CXX=clang++ python3 setup.py sdist bdist_wheel --plat-name macosx-10.9-x86_64

src/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ target_include_directories(_mixin PRIVATE
1616
add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/mixin/libmixin.a
1717
COMMAND go build -o libmixin.a -buildmode=c-archive
1818
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/mixin/mixin_api.go
19+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/mixin/main.go
1920
COMMENT "Creating libmixin.a"
2021
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/mixin
2122
)

src/check_modification.py

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import os
2+
import sys
3+
4+
root_path = sys.argv[1]
5+
6+
def check_modification():
7+
lib_name = os.path.join(root_path, 'libmixin.a')
8+
modify_time = os.path.getmtime(lib_name)
9+
for root, dirs, files in os.walk(root_path):
10+
for f in files:
11+
if f[-3:] == '.go':
12+
f = os.path.join(root, f)
13+
file_time = os.path.getmtime(f)
14+
if modify_time < file_time:
15+
return True
16+
return False
17+
18+
r = check_modification()
19+
if r:
20+
print('mixin lib need to rebuild.')
21+
os.system(f'touch {root_path}/main.go')

0 commit comments

Comments
 (0)